两种选择结构语句
if语句
1.1 if(){…}
格式:
if(判断语句){
代码;
}
执行流程:
如果判断语句的结果是true,就会执行括号中的代码
如果判断语句的结果是false,就不会执行括号中的代码
注意:
1.if语句可以写在main()方法中的任何位置;
2.在if(){}语句的()后面没有分号
代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
int a = sc.nextInt();
if(a>10){
System.out.println(a+"是大于10的数字");
}
}
console
请输入一个数字:
15
15是大于10的数字
1.2 if()…else
格式:
if(条件判断){
代码;
}else{
代码
}
执行流程:
如果判断语句的结果是true,那就执行if里的代码
如果判断语句的结果是false,那就执行else里面的代码
注意:
1.else后面没有表达式
代码
public static void main(String[] args) {
/*
练习:输入两个数,比较两个数的大小
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = sc.nextInt();
System.out.println("请输入第二个数字:");
int b = sc.nextInt();
if(a>b){
System.out.println("最大数为:"+a);
}else {
System.out.println("最大数为:"+b);
}
}
console
请输入第一个数字:
10
请输入第二个数字:
20
最大数为:20
1.3 if()…else if()…else
格式:
if(判断语句1){
代码1
}else if(判断语句2){
代码2
}else if(判断语句3){
代码3
}else if(判断语句n){
代码n
}else{
代码4
}
执行流程:
如果判断语句1的结果为true,就执行代码1,不会继续往下判断
如果判断语句1的结果为false,就继续判断第二个判断语句
如果前面的所有if判断都是false,则执行else里的代码
代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的分数:");
int score = sc.nextInt();
if (score>=90 && score<=100){
System.out.println("很优秀!");
}else if (score>=70 && score<90){
System.out.println("良好");
}else if (score>=60 && score<70){
System.out.println("及格");
} else if (score > 0 && score < 60) {
System.out.println("不及格");
}else {
System.out.println("输入分数有误!!");
}
}
console
请输入你的分数:
98
很优秀!
swith语句
格式:
switch(变量){
case 值1:
代码1;
break;
case 值2:
代码2;
break;
case 值3:
代码3;
break;
case 值n:
代码n;
break;
default:
代码;
break;
}
执行流程:
如果switch中的变量等于值1,就执行代码1
如果switch中的遍历等于值2,就执行代码2
如果所有的case都不匹配,就执行default
不管执行谁,都会在遇到break之后结束,如果没有break,那么case会出现穿透现象
使用场景:
专门用于定值的判断,不适合判断变量的范围
变量类型:
byte short int char String 枚举
代码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字:");
int week = sc.nextInt();
switch (week){
case 1:
System.out.println("星期一");
break;
case 7:
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;
default:
System.out.println("输入有误!");
break;
}
}
console
请输入数字:
3
星期三
比较switch和多重if选择结构:
相同点:
都是用来处理多分支条件的结构。
不同点:
1.switch选择结构:只能处理等值条件判断的情况,不能用于范围的判断
2.多重if选择结构:没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况