Java HelloWorld与数据运算

2019-07-21  本文已影响0人  发家致富靠养猪
public class HelloWorld {  // java固定格式,public--公开 , class--类 ,HelloWorld--类名
    /* 所有内容写在这里面 */
    int x=500; //全局变量
    /* Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须是String数组。*/
    public static void main(String[] args) { //定义方法 static--静态,void--返回值是void,表示无返回值,main--方法名称
        System.out.println("Hello, world!"); // Hello, world!
        System.out.println(62); //62
        int x=11; // 局部变量
        byte qq = 1; // 字节类型 占一个字节 -128~127
        short qw = 32767; // 短整型类型 占2个字节 -32768~32767
        long qe = 300L; // 长整型类型 占8个字节
        System.out.println(x*11);
        int n=100; // 整型 4个字节 -2147483648~2147483647
        System.out.println("n = " + n);
        float q=16.44f; // 浮点型 4个字节
        double q2 = 4.9e-324; // 双精度 8个字节 取值范围更大
        System.out.println(q+q2);
        char a = 'A'; // 字符型 一个字符占用2个字节
        boolean bool=true;  //布尔类型 占用字节不确定
        char zh = '中';
        System.out.println("中国");
        System.out.print("dashj\n");
        System.out.print("dassadaas");
        final double pi=3.14;
        double r = 5.00;
        double area = pi * r * r; // 78.5
        System.out.println(area);
        String sb = new String();
        VariableOperation(); //调用其他方法
        Operation();
        Float();

    };
    public static void VariableOperation(){
        /*Java的整数运算遵循四则运算规则,可以使用任意嵌套的小括号。四则运算规则和初等数学一致。*/
        int x = (66-33)*10;
        int y = 7 * (5 + (x - 60));
        System.out.println(x);
        System.out.println(y);
        int z = 12345 / 12; //1028  两个整数相除只能得到结果的整数部分
        System.out.println(z);
        int q = 12345 % 12; // 9  取余
        System.out.println(q);
        /*特别注意,整数由于存在范围限制,如果计算结果超出了范围,就会产生溢出,而溢出不会出错,却会得到一个奇怪的结果 */
        int w = 2147483640;
        int e = 15;
        int sum = w + e; // -2147483641
        System.out.println(sum);
        /*
        要解释上述结果,我们把整数2147483640和15换成二进制做加法:
          0111 1111 1111 1111 1111 1111 1000
        + 0000 0000 0000 0000 0000 0000 1111
        ------------------------------------
         1000 0000 0000 0000 0000 0000 0111

         由于最高位计算结果为1,因此,加法结果变成了一个负数。
         要解决上面的问题,可以把int换成long类型,由于long可表示的整型范围更大,所以结果就不会溢出

        * */
    };
    public static void Operation(){
        /*计算前N个自然数的和,可以根据公式((1+N)×N)/2 计算*/
        int n = 100;
        int sum = ((1 + n) * n) / 2;
        System.out.println(sum == 5050 ? "成功" : "失败");  // 成功
    }
    public static void Float(){
        double x = 1.0 / 10;
        double y = 1 - 9.0 / 10;
        // 观察x和y是否相等:
        System.out.println(x); //0.1
        System.out.println(y); //0.09999999999999998

        // 比较x和y是否相等,先计算其差的绝对值:
        double r = Math.abs(x - y);
        // 再判断绝对值是否足够小:
        if (r < 0.00001) {
            // 可以认为相等
            System.out.println("x = y");
        } else {
            // 不相等
            System.out.println("x != y");
        }
        /*根据一元二次方程ax^2+bx+c=0的求根公式
        * x=[-b±√(b²-4ac)]/(2a)
        *计算出一元二次方程的两个解
        * */
        double a = 1.0;
        double b = 3.0;
        double c = -4.0;
        // 求平方根可用 Math.sqrt():
        if ((b*b -4*a*c)<0){
            System.out.println("该函数无实根");
        }
        else if ((b*b -4*a*c)==0){
            double r1,r2 = (-b)/(a*a);
            System.out.println("该函数有两个相等的实根");
        }
        else {
            double r1 = (-b+Math.sqrt((b*b-4*a*c)))/(2*a);//1.0
            double r2 = (-b-Math.sqrt((b*b-4*a*c)))/(2*a);//-4.0
            System.out.println(r1 == 1 && r2 == -4 ? "成功" : "失败"); //成功
        }
    }
}

上一篇下一篇

猜你喜欢

热点阅读