流程控制语句
4.1 选择语句
if选择(单项选择)
只考虑一中情况,只针对这一种情况进行处理,其他情况根部不考虑
语法规则:
4.1.1 if
if(条件表达式){
内容执行语句
}
4.1.2 if-else选择(双分之选择)
if(条件表达式){
内容执行语句
}else{
在条件表表达式不成立的执行语句s;
}
4.1.3 else if (多分支)
注意:无论是双分支还是多分支,最终处理的情况,只有一种
if(条件){
满足条件1,执行语句s;
}else if{
不满1满2,执行语句s;
}···
else{
前面所有的条件,都不满足,执行语句s;
}
public class DemoIf {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入你的年龄:");
if (scanner.nextInt()<18){
System.out.println("未成年");
}else if (scanner.nextInt()<35){
System.out.println("青年");
}else {
System.out.println("老年");
}
}
}
4.1.5 swith选择
if是区间选择;switch选择,定值选择(等值比较)
效果类似
语法:
switch(){
case 值1:
case 值2:
···············
default:语句;
}
执行流程:
首先计算switch 后面表达式的值,然后使用表达式的值和 case后面的值依 次做等值比较;一旦遇到等值比较的结果为True(相等),则从该case后面开始,所 有的语句无条件执行;如果前面的case都比较完了,没有相等的,如果存在 default,那就执行default后面的语句。
swtich类似, if 语句做等值判断,default类似else
不同点:if最多只会执行一个语句块,swtich从相等的地方开始,后面的都会执行 (穿透现象)
说明: 表达式必须是能够自动转成int类型的数据;或者是字符串(1.7);或者枚举
例子:
通过给定的int数字,打印出对应的星期数
1,星期一
2,星期二
·······
public class DemoSwitch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
switch (num){
case 1:
System.out.println("星期一");break;
case 2:
System.out.println("星期二");break;
case 3:
System.out.println("星期三");break;
case 4:
System.out.println("星期四");break;
case 5:
System.out.println("星期五");break;
case 6:
System.out.println("星期六");break;
case 7:
System.out.println("星期日");break;
default:
System.out.println("不合法");
}
}
}