int grade = 70;
boolean bb = false && grade == 70;//会短路
boolean bb2 = false & grade == 70;
逻辑&&和||有短路的效果,而位运算&和|没有。
运算符优先级如下:
int a = 10;
int b = a>11?1:0 > 0?10:20;
System.out.println(b); //20
public static void test1(){
int a=10;
int b=10;
int sum=a+ ++b;
System.out.println("a="+a+",b="+b+",sum="+sum);
}
public static void test2(){
int a=10;
int b=10;
int sum=a+++b;
System.out.println("a="+a+",b="+b+",sum="+sum);
}
public static void test3(){
int a=10;
int b=10;
int c = 10;
int sum=a+++b+++c;
System.out.println("a="+a+",b="+b+",c="+c+",sum="+sum);
}
public static void test4(){
int a=10;
int b=10;
int c = 10;
int sum=(a++)+(++b)+(++c);
System.out.println("a="+a+",b="+b+",c="+c+",sum="+sum);
}
public static void test5(){
int a=10;
int b=10;
int sum=a+++++b; //报错
int sum2=(a++)+++b; //报错
System.out.println("a="+a+",b="+b+",sum="+sum+",sum2="+sum2);
}
结果:
a=10,b=11,sum=21
a=11,b=10,sum=20
a=11,b=11,c=10,sum=30
a=11,b=11,c=11,sum=32