1、java不准许将一个数字作为布尔值。
2、区分break和continue
- continue跳过一次循环,break跳出整个循环
- continue跳到循环顶部的行为会使得i值递增,break从循环块外的下一句开始执行,不会有i值递增
实例:
public class BreakAndContiniue {
public static void main(String[] args) {
int i;
for(i = 0; i < 10; i++) {
if(i == 9)
break;
}
System.out.println("break_i = " + i);
for(i = 0; i < 10; i++) {
if(i == 9)
continue;
}
System.out.println("continue_i = " + i);
}
}
结果:break_i = 9
continue_i = 10
- 带标签continue会跳到,标签所属循环顶部开始下一次循环;但是,break会直接跳出标签所属循环
实例:
public class BreakAndContinue2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int count = 0;
lable1:
for(int i = 0; i<10; i++) {
for(int j = 0; j < 10; j++) {
if(j==4)
continue lable1;
count++;
}
}
System.out.println("continue_count = " + count);
count = 0;
lable2:
for(int i = 0; i<10; i++) {
for(int j = 0; j < 10; j++) {
if(j==4)
break lable2;
count++;
}
}
System.out.println("break_count = " + count);
}
}
结果:continue_count = 40
break_count = 4
3.switch语句的难点在于default的理解;
注意: 如果case语句匹配成功,但是没有break;条件不管会不会和后面的case语句匹配,都会继续执行后面的case语句一直到遇到break或整个switch执行完
把default理解成是通配符就可以。
看一下笔者编写的代码示例:
public class Switch {
public static void main(String[] args) {
// TODO Auto-generated method stub
switch (1) {
case 1: System.out.println("This is 1");
case 2: System.out.println("This is 2");
default: System.out.println("This is default");
case 3: System.out.println("This is 3");
break;
case 4: System.out.println("This is 4");
}
}
}
结果:

代码直到遇到break;才结束
稍微改动代码,让我们来看看default的效果:
public class Switch {
public static void main(String[] args) {
// TODO Auto-generated method stub
switch (1) {
default: System.out.println("This is default");
case 3: System.out.println("This is 3");
break;
case 4: System.out.println("This is 4");
}
}
}
结果:

没有报错,default是通配符可以匹配1。