控制结构
顺序控制
程序从上到下逐行执行,中间没有任何判断和跳转
Java中定义变量时采用合法的前向引用(先定义再使用)
分支控制
if-else
单分支
if(条件表达式){
}
双分支
if(条件表达式){
}
else{
}
多分支
if(条件表达式1){
}
else if(条件表达式2){
}
else if(条件表达式3){
}
else{
}
嵌套分支(不要超过三层)
switch分支
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
……
default:
default语句块;
break;
}
从上往下依次进行匹配
switch细节:
- 表达式数据类型,应和case后的常量类型一致,或者是可以自动转换成相互比较的
- switch(表达式)中表达式的返回值必须是(byte、short、int、char、枚举enum、String)其中一种
- case子句中的值必须是常量(或常量表达式),而不能是变量
- default可选,没有匹配的时候执行default
- break:执行完一个case后跳出switch
switch和if比较:
- 如果判断的具体数值不多,而且符合(byte、short、int、char、枚举enum、String),虽然都可以用,建议使用switch
- 其他情况:对区间判断,对结果为boolean类型判断,使用if,if 的适用范围更广
循环控制
for循环控制
for(循环变量初始化;循环条件;循环变量迭代){
循环操作(可以多条语句);
}
字符也可以加入for循环,即循环变量类型是char类型;
- for关键字,表示循环控制
- for四要素:
- 循环变量初始化
- 循环条件
- 循环操作
- 循环变量迭代
- 循环操作可以有多条语句,循环执行
- {}可省略的时候也不要省略
细节:
- 循环条件是返回一个布尔值的表达式
- for(;循环判断条件;)循环变量初始化和循环变量迭代可以放在其他地方,但是不能省略分号
- for(;;)表示无限循环
- 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开;循环变量迭代也可以有多条变量迭代语句,并且中间也用逗号隔开
while循环控制
循环变量初始化;
while(循环条件){
循环体;
循环变量迭代;
}
do…while循环控制
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
起码执行一次,最后面有个分号
break
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1:
for(){
}
label2:
for(){
}
- break语句可以指定推出哪一层
- 标签名字由程序员指定
- break后指定到哪个标签就退出到哪里
- 实际开发不推荐使用标签
- 如果没有指定break,默认退出最近的循环体
continue
用于结束本次循环,继续执行下一次循环
可以指定标签,但最好别用
return
表示跳出所在的方法,写在main方法会退出程序