程序控制结构
顺序控制
程序从上到下逐行地执行,中间没有任何判断和跳转。
正确:int m = 2;
int n = m + 3;
错误:int n = m + 3;
int m = 2;
分支控制
(if, else, switch)
- 单分支
if (条件表达式) {
执行代码块;}
- 双分支
if (条件表达式) {
执行代码块1;}
else {
执行代码块2;}
- 多分支
if (条件表达式1) {
执行代码块1;}
else if (条件表达式2) {
执行代码块2;}
······
else {
执行代码块n;}
- switch
switch(表达式) {
case 常量1:
语句块1;
break;(表示退出switch【若没有,程序会顺序执行到switch结尾】)
······
case 常量n;
语句块n;
break;
default;(都没有匹配上,执行default【可选的】)
default语句块;
break;} - 表达式数据类型应与case后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int
- switch(表达式) 中表达式的返回值必须是(byte, short, int, char, String, enum[枚举])
- case子句中的值必须是常量或常量表达式,不能是变量
循环控制
(for, while, dowhile, 多重循环)
for(循环变量初始化;循环条件;循环变量迭代) {
循环操作(语句); }
- for( ; 循环判断条件 ;)中的初始化和变量迭代可以写到其它地方,但两边的分号不能省略
- for( ; ; )表示一个无限循环【死循环】
- 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开。循环变量迭代亦然 。
循环变量初始化;
while(循环条件) {
循环体(语句);
循环变量迭代;}
循环变量初始化;
do {
循环体(语句);
循环变量迭代;
} while(循环条件);【先执行再判断,一定会执行一次】