内容纲要
114讲switch基本语法
-
老韩解读switch
- switch 关键字,表示switch分支。
- 表达式对应一个值。
- case 常量1 :当表达式的值等于常量1,则执行语句块1.
- break; 表示对出 switch
- 如果和case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配case 常量2.
- 如果一个都没有匹配上,执行default。
-
流程图
练习题
import java.util.Scanner;
public class Switch01{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入一个字符a~g:");
char charactor = myScanner.next().charAt(0);
switch(charactor){
case 'a':
System.out.println("今天星期一,猴子穿新衣");
break;
case 'b':
System.out.println("今天星期一,猴子当小二");
break;
default:
System.out.println("默认输出");
}
System.out.println("Switch结束了,但是程序没停止哦");
}
}
Switch 分支结构细节
pulic class SwitchDetail{
public static void main(String[] args){
}
}
- 表达式数据类型,应和 case 后的常量类型一致,或者是可以自动转换成可以相互比较的类型,比如输入的是字符,而常量是int
- switch(表达式)中表达式的返回值必须是: (byte、short、int、char、enum[]枚举、String)
- case 子句中的值必须是常量或者常量表达式,而不能是变量
- default 子句是可选的,当没 有匹配的case 时,执行 default
//如果没有default子句,又没有任何匹配常量,则没有输出
- break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果没有写 break,程序就会顺序执行到 switch 结尾,除非遇到 break 语句。
switch课堂练习
import java.util.Scanner;
public class SwitchExercise{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
char c1 = myScanner.next().charAt(0);
switch(c1){
case 'a':
System.out.println('A');
break;
case 'b':
System.out.println('B');
break;
default:
System.out.println("others");
}
//对学生成绩大于60分的,输出合格。低于60分的,输出不合格。输入的成绩不能大于100分,否则提示有误
//思路:1.这道题完全可以用if-else 分支语句完成。但要求使用switch
//2.成绩/60 如果取模大于1则及格,取模为0就时不及格。
//3.还要进行判断 成绩/50是否>2
System.out.println("please input your score");
int num = myScanner.nextInt();
if(num >=0 && num <= 100){
switch(num/60){
case 1:
System.out.println("access");
break;
case 0:
System.out.println("defeat");
break;
}
}else{
System.out.println("your entre score is error");
}
}
}
- 课堂练习题3
根据用于指定月份,打印该月份所属季节。3,4,5 春季,5,6,7夏季, 8,9,10秋季,11,1,2冬季
import java.util.Scanner;
public class SwitchExercise02{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("plese enter your month");
int month = myScanner.nextInt();
if(month >=1 && month <= 12){
switch(month){
case 4:
case 5:
case 3:
System.out.println("Spring");
break;
case 8:
case 6:
case 7:
System.out.println("Summer");
break;
case 11:
case 9:
case 10:
System.out.println("Autumn");
break;
default:
System.out.println("Winter");
}
}else{
System.out.println("enter error");
}
}
}
Switch和if的比较
图片丢失了,找不回来。没办法。自行脑补吧。