Java程序流程控制
1.程序流程控制
- 顺序结构
- 选择结构
- 循环结构
2.顺序结构
程序从上到下逐行的执行,中间没有任何判断和跳转。
3.选择结构
根据条件,选择性的执行某段代码。有 if-else 和 switch-case 两种分支语句。
1.if-else
if (条件表达式1) {
// 执行代码块1
} else if (条件表达式2) {
// 执行代码块2
}
... // 中间可以有很多 else if
else {
// 执行代码块3
}
其中,else、else if 都可省略。
2.switch-case
switch (表达式) {
case 常量1:
// 执行语句1
// break;
case 常量2:
// 执行语句2
// break;
...
case 常量n:
// 执行语句n
// break;
default:
// 执行语句
// break;
}
注意:
- 根据 switch 表达式的值,依次匹配各个 case 中的常量。一旦匹配成功,则进入到相应 case 结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行,直到遇到 break 关键字或者 switch-case 结构结束为止。
int num = 2; switch (num) { case 1: System.out.println(1); case 2: // 当匹配此变量时,后面的无需判断都会执行 System.out.println(2); case 3: System.out.println(3); default: System.out.println("default"); } 执行结果: 2 3 default
// 多个 case 可以合并 int num = 2; switch (num) { case 1: case 2: case 3: System.out.println("123"); break; }
- break 关键字可以使用在 switch-case 结构中,表示一旦执行到此关键字,就跳出 switch-case 结构。
- switch 结构中的表达式,只能是如下的6种数据类型之一:byte、short、int、char、枚举类型(JDK5新增)、String(JDK7新增)
- case 之后只能声明常量,不能声明范围。
- break 关键字是可选的
- default 结构是可选的,位置灵活。
int num = 4; switch (num) { default: System.out.println("default"); // 无 break case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; } 执行结果: default 1
- 执行语句中声明的变量不能同名
int num = 2; switch (num) { case 1: int x = num; break; case 2: int x = num; // 同名 x,编译错误 break; }
4.循环结构
- for 循环
- while 循环
- do-while 循环
1.for 循环
for (初始化条件; 循环条件; 迭代条件) {
// 循环体
}
label:
for (int i =1; i <= 4; i++) {
for (int j = 1; j <= 10; j++) {
if (j % 4 == 0) {
continue label;
}
System.out.print(j);
}
System.out.println();
}
执行结果:
123123123123
label:
for (int i =1; i <= 4; i++) {
for (int j = 1; j <= 10; j++) {
if (j % 4 == 0) {
break label;
}
System.out.print(j);
}
System.out.println();
}
执行结果:
123
2.while 循环
// 初始化条件
while (循环条件) {
// 循环体
// 迭代条件
}
3.do-while 循环
// 初始化条件
do {
// 循环体
// 迭代条件
} while (循环条件);
注意:while (循环条件)后面有一个 ;
5.break 和 continue
关键字 | 使用范围 | 不同点 | 相同点 |
---|---|---|---|
break | switch-case、循环结构 | 结束当前循环 | 关键字后面不能声明执行语句 |
continue | 循环结构 | 结束当次循环 | 关键字后面不能声明执行语句 |