java:5-2switch基本语法

2024-01-02 19:06:14

1. switch

1.1 基本语法

请添加图片描述

【6点注意】

  1. switch 关键字,表示swtich分支
  2. 表达式(一定会有个值返回)
  3. case 常量1:当表达式的值等于常量1,就执行 语句块1
  4. break :表示退出swtich
  5. 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配case常量2。
  6. 如果一个都没有匹配上,就执行default

1.2 流程图

在这里插入图片描述
没有break就穿透执行语句块2。

1.3 快速入门

  1. 请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g
  2. a 表示星期一,b 表示星期二 …
  3. 根据用户的输入显示相应的信息.要求使用 switch 语句完成。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//思路分析
		//1. 接收一个字符,创建Scanner对象
		//2. 使用switch来完成匹配,并输出对应的信息。
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入一个字符(a-g)");
		char c1 = myScanner.next().cahrAt(0);
		//在java中只要有值返回就是一个表达式。
		switch(c1) {
		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("输入错误,没有匹配");
		}
		System.out.println("退出switch,继续执行程序。")
	}
} 

1.4 switch使用细节

  1. 表达式数据类型,应和case 后的常量类型一致,或者可以自动转成可以相互比较的类型,比如輸入的是字符,而常量是 int。
  2. switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum枚举,String)。

请添加图片描述

  1. case子句中的值必须是常量 / 常量表达式,而不能是变量。
  2. default子句是可选的(可以不写default),当没有匹配的case时,执行default。【无default&无匹配,则没有任何输出】
  3. brealk语句用来在执行完一个case分支后使程序跳出switch语句块。如果没有break,程序会顺序执行到switch结尾,除非遇到break(穿透)。

1.5 练习

  1. 使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出 “other”。
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//第一题
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入a-e");
		char c1 = myScanner.next().cahrAt(0);
		//在java中只要有值返回就是一个表达式。
		switch(c1) {
		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")
		}
	}
} 
  1. 对学生成绩大于60分的,输出"合格"。低于60分的,输出"不合格"。(注:输入的成绩不能大于100),提示成绩/60
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//第2题
		//思路分析:
		//1. 成绩在【60,100】,(int)(成绩/60)=1
		//   成绩在【0,60),(int)(成绩/60)=0
		//2. 用if语句,只有成绩在【0,100】才执行switch。
		double score = 88.0;
		if(score >= 0 && score <= 100) {
			switch((int)(score / 60)) {
			case 0:
				System.out.println("不及格");
				break;
			case 1:
				System.out.println("及格");
				break;
			}
		} else {
			System.out.println("输入错误")
		}
	}
} 
  1. 根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 [课堂练习, 提示 使用穿透 ]
public class var01 {

	//编写一个main方法
	public static void main(String[] args) {
		//第3题
		//思路分析:
		//1. 创建Scanner对象,接收用户输入
		//2. 使用int month接收。
		//3. 使用switch匹配,使用穿透,笔记哦啊简洁
		import java.util.Scanner;
		Scanner myScanner = new Scanner(System.in);
		System.out.println("请输入月份");
		int month = myScanner.nextInt();
		switch(month) {
		case 3:
		case 4:
		case 5:
			System.out.println("春季");
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("夏季");
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("秋季");
			break;
		case 12:
		case 1:
		case 2:
			System.out.println("冬季");
			break;
		default:
			System,out.println("输入错误,请输入1-12")
		}
	}
} 

1.6 switch和if的比较

  1. 如果判断的具体数值不多,而且符合byte、short、int、char,enum[枚举],String这6种类型。虽然两个语句都可 以使用,建议使用 swtich 语句。
  2. 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

文章来源:https://blog.csdn.net/skylar0/article/details/135343879
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。