Java运算符

(1)数学运算符

数学运算无非就是加减乘除以及取余(模)运算。

先看一个程序:


public class Data
{
    
    public static void main(String[] args)
    {
        double a=0.6;
        int b=2;
        int c=0;
        
        int d=(int)a/b;
        /*
        double e=a/c; Exception in thread "main" java.lang.ArithmeticException:
        / by zeroat Data.main(Data.java:9);编译不出错,运行一定会出错,原因很
        明确:除数为0;
        int f=a/b;依然会报错,需要int�找到double损失精度 ,a/b获取的结果应该
        是double类型,而将double类型的值赋给int类型,显然会出错,范围小的数据
        类型可以赋给数据类型范围大的,相反则不行。
        */
        int e=(int)a/b;
        int f=c/b;
        double g=a/b;//将double类型的运算结果赋给double类型的变量
        double h=c/b;//将int类型的运算结果赋给double类型的变量,小范围赋给大范围
        /*
        int i=a+b;需要int,找到double;
        */
        double i=a+b;
        
        //int j=a%b;依然损失精度
        
        int k=-2;
        int l=5;
        int m=-7;
        
        int n=l%k;
        int o=m%l;
        
        int p=k*l;//乘法;
        int q=k-l;//减法
        
        
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(i);
        System.out.println(n);//取余运算的结果正负值只与被除数有关
        System.out.println(o);
    }
}

运行结果如下:

2
0
0
0
0
0.3
0.0
2.6
1
-2

总结:

范围大的数据类型不能直接赋给比它小的数据类型,可以通过强制类型转换,而将范围小的数据类型可以赋给比它范围大的数据类型。

(2)逻辑运算符

看一段代码:
public class Data
{
    
    public static void main(String[] args)
    {
        int a=1;
        int b=2;
        
        boolean c=(a==b);//等于
        boolean d=(a!=b);//不等于
        boolean e=(a>b);//大于
        boolean f=(a>=b);?/不小于
        boolean g=(a<b);//小于
        boolean h=(a<=b);//不大于
        boolean i=true;
        boolean j=false;
        boolean k=(i&&j);//与运算
        boolean l=(i||j);//或运算
        
        
        
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        System.out.println(f);
        System.out.println(g);
        System.out.println(h);
        System.out.println(k);
        System.out.println(l);
        
    }
}

结果如下:

false
true
false
false
true
true
false
true

另外一个程序:



public class Data
{
    
    public static void main(String[] args)
    {
        int a=1;
        int b=1;
        
        a++;
        ++b;
        
        int c=b;
        int d=b++;
        int e=++b;
        
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        
        
    }
}

结果如下:

2
4
2
2
4

总结:

重点是逻辑与(&&)运算和逻辑或(||)运算,与运算:&&两端两个操作符都为true最后结果才为true;||两端两个操作符有一个为true那么就过就为true;

关于变量的自增与自减运算。
1) 关于int b = a++,作用是将a的值先赋给b,然后再让a自增1.
2) 关于int b = ++a,作用是将a的值先自增1,然后将自增后的结果赋给b。

3)只要变量a在程序中单独出现 ++a或a++而不是出现在赋值运算中,那么最终a的结果就会+1;

原文地址:https://www.cnblogs.com/MedivhQ/p/3801422.html