1. 短路
规则:
逻辑与&&以及逻辑或||会产生短路现象:
若&&前表达式为假, 则程序不会检查并执行&&后的表达式, 因为逻辑与左右有一假则结果必假
若||前表达式为真, 则程序不会检查执行||前的表达式, 因为逻辑或左右只需一真则结果必真
验证:
int a=1;
System.out.println(a<0&&a/0==0?"程序崩溃":"不会检查执行a/0");
结果:
2. 自增规则
"++" "--"
规则:
前置的自增 自减运算符会先将变量的值加一或者减一, 再让该变量参与表达式的运算
后置的自增 自减运算符会先让变量参与表达式的运算,再将该变量的值加一或者减一
b=a++; → b=a; a=a+1;
b=++a; → a=a+1; b=a;
验证:
int a=1;
int b=(a++)+(++a);
System.out.println("b="+b+"\na="+a);
结果:
分析:
先执行(++a), 此时a=2; 再执行b=a+(a), 则b=4; 再执行(a++), 此时a=3;
3. 验证continue执行
规则:
执行continue之后, 将跳过本次循环结束前的语句, 回到循环的条件测试部分, 重新开始执行循环
对于for循环中执行continue, 将立即执行循环的第三表达式, 即增量部分, 再进行条件测试
对于while或者do...while循环, 则直接开始下一次循环(包括条件测试部分)
验证:
for(int i=1;i<=5;i++) {
System.out.println(i);
if(i==3)
continue;
System.out.println("mark");
}
结果:
分析:
满足条件i==3后, continue跳过循环后面的"mark"显示语句, 但i仍旧执行自增, 表示continue不会跳过for循环的第三个表达式