(一)选择
1、if
a、单分支流程控制语句
如果条件表达式为true就执行语句组,否则就执行if结构后面的语句。如果语句组只有一条语 句,可以省略大括号,当从编程规范角度不要省略大括号,省略大括号会是程序的可读性变 差。
if(条件){ //条件是布尔类型
语句组
}
b、双分支流程控制
当程序执行到if语句时,先判断条件表达式,如果值为true,则执行语句组1,然后跳过else语句 及语句组2,继续执行后面的语句。如果条件表达式的值为false,则忽略语句组1而直接执行语 句组2,然后继续执行后面的语句
if (条件表达式) {
语句组1
} else {
语句组2
}
c、多分支流程控制
else-if结构实际上是if-else结构的多层嵌套,它明显的特点就是在多个分支中只执行 一个语句组,而其他分支都不执行,所以这种结构可以用于有多种判断结果的分支中
if (条件表达式1) {
语句组1
} else if (条件表达式2) {
语句组2
} else if (条件表达式3) {
语句组3
...
} else if (条件表达式n) {
语句组n
} else {
语句组n+1
}
2、switch:提供多分支程序结构语句
switch语句中“表达式”计算结果只能是int、byte、short和char类型,不能是long更不能其他的类型。每 个case后面只能跟一个int、byte、short和char类型的常量,default语句可以省略。
switch (表达式) {
case 值1:语句组1;break;
case 值2:语句组2;break;
case 值3:语句组3; break;
...
case 判断值n:语句组n;break;
default:语句组n+1
}
当程序执行到switch语句时,先计算条件表达式的值,假设值为A,然后拿A与第1个case语句中的值1 进行匹配,如果匹配则执行语句组1,语句组执行完成后不跳出switch,只有遇到break才跳出switch。 如果A没有与第1个case语句匹配,则与第2个case语句进行匹配,如果匹配则执行语句组2,以此类 推,直到执行语句组n。如果所有的case语句都没有执行,就执行default的语句组n+1,这时才跳出 switch。
(二)循环结构
1、while
while有两种语句:
a、while:先判断后循环
while (循环条件) {
语句组
}
b、do-while :先循环后判断
do {
语句组
} while (循环条件)
2、for语句
a、for
for (初始化; 循环条件; 迭代) {
语句组
}
for语句执行流程如图8-1所示,首先会先执行初始化语句,它的作用是初始化循环变量和其他变量,然 后程序会判断循环条件是否满足,如果满足,则继续执行循环体并计算迭代语句,之后再判断循环条 件,如此反复,直到判断循环条件不满足时跳出循环。
b、for-each
Java 5之后提供了一种专门用于遍历集合的for循环——for-each循环。使用for-each循环不必按照for的标 准套路编写代码,只需要提供一个集合就可以遍历。
for (数据类型 变量 : 集合对象) {
语句组
}
例如:用for和for-each语句便利集合效果如下
public static void main(String[] args) {
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
// for语句
System.out.println("----for语句-------");
for (int i = 0; i < numbers.length; i++) {
System.out.print( numbers[i]+" ");
}
System.out.println();
//for-each语句
System.out.println("----for-each语句------");
for (int item : numbers) {
System.out.print(item+" ");
}
}
(三)跳转语句
1、break语句
break语句可用于while、repeat-while和for循环结构,它的作用是强行退出循环体,不再执行循环体中剩余的语句
2、continue语句
continue语句用来结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是 否继续循环。对于for语句,在进行终止条件的判断前,还要先执行迭代语句。