Switch 分支结构

发布时间 2023-08-13 14:17:52作者: 小Y的开发笔记

Switch 分支结构

基本结构

switch(表达式){

​ case: 常量1:语句块1;

​ case: 常量2:语句块2;

​ case: 常量3:语句块3;

​ ......

​ default:

​ default 语句块;

​ break;

}

  1. 表达式应当是一个具体的值
  2. break表示退出
  3. 没有一个匹配case后的值,自动执行defaul;

流程图

image-20230813120559566

案例

import java.util.Scanner;
public class Switch{
	public static void main(String[] args) {
		/*案例:Switch01.java
		请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
		a 表示星期一,b 表示星期二 …
		*/
		Scanner input = new Scanner(System.in);
		System.out.println("输入一个字符");
		char s = input.next().charAt(0);
		switch(s){
			case 'a': 
				System.out.println("星期一");
				break;
			case 'b': 
				System.out.println("星期二");
				break;
			case 'c': 
				System.out.println("星期三");
				break;
			case 'd': 
				System.out.println("星期四");
				break;
			case 'e': 
				System.out.println("星期五");
				break;
			case 'f': 
				System.out.println("星期六");
				break;
			case 'g': 
				System.out.println("星期天");
				break;
			default: System.out.println("输入有误");
		}
	}
}

注意事项

  1. switch(表达式),表达式中的数据类型应该和case后的常量类型保持一致,或是可以进行自动类型转换的类型
  2. 表达式中的返回值必须是(byte,short,int,char,enum[枚举],String)
  3. case中值必须是常量而不能是变量
  4. default是可选的
  5. break的作用是跳出switch,没有写break则顺序执行之后的case后的代码块,直到遇到break语句或执行到最后一个语句(default也会执行)

课后习题

import java.util.Scanner;
public class Switch{
	public static void main(String[] args) {
		/*1) 使用 switch 把小写类型的 char 型转为大写(键盘输入)。
		只转换 a, b, c, d, e. 其它的输出 "other"。
		*/
		Scanner input = new Scanner(System.in);
		System.out.println("输入一个字符");
		char c = input.next().charAt(0);
		switch(c){
			case 'a':
				System.out.println("A");
				break;
			case 'b':
				System.out.println("B");
				break;
			case 'c':
				System.out.println("C");
				break;
			case 'd':
				System.out.println("D");
				break;
			case 'e':
				System.out.println("E");
				break;
			default: System.out.println("other");
		}
        /* 2) 对学生成绩大于 60 分的,输出"合格"。低于 60 分的,输出"不合格"。
		(注:输入的成绩不能大于 100), 提示 成绩/60*/
        Scanner input = new Scanner(System.in);
		System.out.println("输入你的成绩");
		int score = input.nextInt();
		switch(score / 60){
			case 0 :
				System.out.println("不合格");
				break;
			case 1 :
				System.out.println("合格");
				break;
			default :
				System.out.println("输入");
	}
         /* 3) 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 
		6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示 使
		用穿透 ]
		*/
        Scanner input = new Scanner(System.in);
		System.out.println("输入月份");
		int mouth = input.nextInt();
		switch(mouth){
			case 1 :
			case 2 :
			case 3 :
				System.out.println("春季");
				break;
			case 4 :
			case 5 :
			case 6 :
				System.out.println("夏季");
				break;
			case 7 :
			case 8 :
			case 9 :
				System.out.println("秋季");
				break;
			case 10 :
			case 11 :
			case 12 :
				System.out.println("冬季");
				break;
			default :
				System.out.println("输入有误");
		}

}