3.1.1 流程控制结构
3 种: 顺序结构(从上到下依次) 、 选择结构(根据条件判断的结果来选择执行不同的代码 ----- 单分支、双分支 、 多分支 ----if 控制语句 、 switch语句)、 循环结构(根据判断条件 来重复执行某段代码---- while语句 、 do - while 语句 、 for语句);
1. if 控制语句:
单分支:
if(表达式){ ---- 表达式是布尔类型的表达式,结果为true , false;
语句
}
执行步骤:
1)对表达式的结果进行判断;
2) 如果表达式结果为true ---> 执行该语句;
2) 如果表达式结果为false ---> 跳过该语句;
双分支:
if(表达式){
语句1
}else{
语句2
}
执行步骤:
1)对表达式的结果进行判断;
2) 如果表达式结果为true ---> 执行语句1;
2) 如果表达式结果为false ---> 执行语句2;
多分支:
if(表达式1){
语句1
}else if(表达式2){
语句2
}else{
语句3
}
执行步骤:
1)对表达式1的结果进行判断;
2) 如果表达式1的结果为true , 则执行语句1 ; 否则判断表达式2的值;
3) 如果表达式2的结果为true , 则执行语句2 ; 否则执行语句3;
2. 嵌套if控制语句
在if控制语句中包含一个或多个if控制语句, 通过外层 语句和内层语句的协作,增强程序的灵活性;
3. switch语句
和多分支if控制语句结构在某些情况下可以互相代替;
switch(表达式){ // switch的表达式可以是int 、 short 、 byte 、 char 、 枚举类型 、 string
case 常量1: // case用于与表达式进行匹配
语句;
break; // break 用于终止后续语句的执行;
case 常量2:
语句;
break;
case 常量3:
语句;
break;
。。。。
defult: // defult 是可选的, 当其他条件都不匹配的时候执行defult;
语句;
break;
执行步骤:
1) 计算switch后表达式的值
2) 将计算结构从上至下依次与case后的常量值比较;
3)如果相等就执行该常量后的代码块, 遇到break语句就结束;
4) 如果与任何一个case后的常量值都不匹配,就执行defult中的语句;
3.2.1 循环结构
初始部分: 设置循环的初始状态
循环体: 重复执行的代码;
循环条件: 判断是否继续循环的条件
语法格式:
变量初始化
while(循环条件){
循环体 // while语句先判断循环条件再执行循环体 , 如果第一次判断循环条件为假,循环将一次也不执行;
}
do-while 循环
变量初始化
do{
循环体 //do-while以分号结尾,很重要,不可 省略;先执行 循环体再判断循环条件,所以
}while(循环条件); //循环体至少执行一次;
for 循环
for( 变量初始化 ; 循环条件 ; 修改循环变量的值){
循环体 //先判断条件,再执行;
}
多重循环(嵌套循环)
while(循环条件1){ //while是外层循环;
循环语句1
for(循环条件2){ //for是内层循环 ---- 外层while循环每循环一次,内层for循环就完整的执行一遍;
循环语句2
}
}
while / do-while / for 循环的适用情况:*
循环次数确定: for循环
循环次数不确定:while / do-while
3.2.2 跳转语句
break语句 、 continue语句 、 return语句
break:在语句中的作用是终止当前循环,在switch语句中的作用是终止switch;
例子:输入1-10 , 若遇到4的倍数程序自动退出;
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
if(i%4 == 0){
break;
}
System.out.println(i+"");
}
System.out.println("循环结束");
}
continue:强制循环提前返回,让循环跳过本次循环中的剩余代码,然后开始下一次循环;
例子:输入1-10 , 请实现输出非4的倍数的数字;
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
if(i%4 == 0){
continue; //当i = 4/8 时,执行continue后并没有终止整个循环,
} //而是终止本次循环,不再执行循环体中continue后面的输入语句;
System.out.println(i+"");
}
System.out.println("循环结束");
}
return :结束当前方法的执行并退出返回到调用该方法的语句处;
例子:请实现输出4以下的数字;
public static void main(String[] args) {
for(int i = 0 ; i < 10 ; i++){
if(i%4 == 0){
return; // i = 4 时满足条件,执行return语句,结束当前循环,结束整个方法的执行;
}
System.out.println(i+"");
}
System.out.println("循环结束");
}