条件结构
1.switch-case结构
(1)语法:
switch(表达式) {
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
......
default:
语句块n;
break;
}
- 上述语法中switch,case,break,default均为关键字
- switch表示“开关”的意思,此开关就是switch后面小括号里的值,小括号里面的表达式值的类型char,整数和String。
- case表示“情况”,case后面必须跟一个char,整数,或String类型的常量表达式,如“8”,“a”,“student”;case可以有多个,顺序可以改变,但每个case后面跟的常量值不能相同。
- default表示“默认”的意思,即表达式的值与任意一个case后的值都不匹配时,执行default语句;default块可以省略,通常把他放在switch语句的最后面。
- break表示“停止”的意思,即跳出当前switch语句,,不再执行switch语句中的剩余部分。
(2)switch-case语句流程图
注意:break语句不能省略
(3)switch-case语句练习
-
需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季 节,并输出。
-
统一季节
春:3、4、5
夏:6、7、8
秋:9、10、11
冬:1、2、12 -
代码展示:
public class switchExercises {
public static void main(String[] arg){
//一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季 节,并输出。
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个月份:");
String i = sc.next();
switch(i){
case "1":
case "2":
case "12":
System.out.printf("你输入的月份是%s,该月份为春季",i);
break;
case "3":
case "4":
case "5":
System.out.printf("你输入的月份为%s,该月份为夏季",i);
break;
case "6":
case "7":
case "8":
System.out.printf("你输入的月份为%s,该月份为秋季",i);
break;
case "9":
case "10":
case "11":
System.out.printf("你输入的月份为%s,该月份为冬季",i);
break;
default:
System.out.println("你输入的月份格式不对,如果你想要查询1月请输入1");
break;
}
}
}
2.if条件结构
(1)单分支if结构
- 语法
if(条件){
//语句
}
- 流程图
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容
(2)双分支if结构
- 语法
if(条件表达式){
语句块1;
}else{
语句块2;
}
- 流程图
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
(3)多重if结构
- 语法
if(条件表达式){
语句1;
}else if(条件表达式2){
语句2;
}else if(条件表达式n){
语句n;
}else{
语句n+1;
}
- 流程图
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。
- 注意
else if块可以有多个或者没有,完全取决于需要,
else块只能有一个,且只能放在后面。
(4)嵌套if条件结构
- 语法
if(表达式1){
if(表达式2){//内层if条件结构
语句1;
}else{
语句2;
}
}else {
if(表达式3){//内层if条件结构
语句3;
}else{
语句4;
}
}
- 与if结构相关的练习会在之后发出来,也可以通过百度自己搜了练习