流程控制
(1)条件语句(if…else…)
if(条件){条件为真时执行的代码} else {条件为假时执行的代码}
if (a > 11) {
System.out.println("该数大于11");
} else if(a > 8) {
System.out.println("该数大于8且小于11");
} else {
System.out.println("该数小于8");
}
由上例可以看出条件语句的条件是可以有多个的。
(2)循环
a.while循环
while (条件) {条件为真时执行的代码}
int flag = 10;
while(flag > 0) {
System.out.println(flag);
flag--;
}
b.do…while循环
do {代码块} while (条件);
注:该循环是先执行一次do中的代码块,在判断while中的条件,如果为真,则循环执行do中的代码,直至while中条件为假时,结束循环。
int flag = 10;
do {
System.out.println(flag);
flag--;
} while (flag > 0);
c.for循环
for(1;2;3){4}
注:
i.其中的1一般是定义一个变量并为其赋值(非必须);
ii.其中的2是判断循环是否执行的条件。
iii.其中的3一般用于对变量进行处理;
iiii.其中的4是指要循环的代码。
iiiii.执行的顺序是:1,2,4,3,2,4,3,2,4,3…直到2中条件不成立。
for (int i = 10; i > 0; i--) {
System.out.println(i);
}
小结:
i.要特别注意循环条件的设定,发现循环不会终止时应该先检查自己所设定的终止条件是否有误。
ii.特别注意检测两个浮点数是否相等时要格外注意。例如下面的for循环可能永远不会结束,因为舍入的误差(0.1无法精确的用二进制表示),得不到精确值。
for (double i = 9; i != 10; i += 0.1) {
System.out.println(i);
}
(3)多重选择语句(switch)
switch (条件) { case 判断条件:…break; case 判断条件: …break;…default:…break; }
注:
i.switch中的条件是在case中判断符合哪一个就执行那一case中的代码,若都不符合则执行default中的代码。
ii.注意每个case后面都要加break,如果符合条件的case没有加break则会执行后续的case直至遇到break为止。
int flag = 10;
switch (flag) {
case 5:
System.out.println("flag是5");
break;
case 10:
System.out.println("flag是10");
break;
default:
System.out.println("flag不是5也不是10");
break;
}
(5)中断控制流程语句(continue,break)
continue用于结束本次循环代码直接跳到下一次的循环中。
break用于结束当前这个循环。
//该代码的结果为:0 1 3
for (int i = 0; i < 10; i++) {
if(i==2) continue;
if(i==4) break;
System.out.println(i);
}
注:
java中的break功能更加强大能够跳出多层循环,需要用到一个标签,名字任意(应遵守变量命名规则)。
//此处的flag就是一个break的标签。
flag: for (int a = 0; a < 10; a++) {
for (int b = 0; b < 10; b++) {
if (b > 2)
break flag;
System.out.println(a + b);
}
}