Switch 分支结构
Switch 分支结构
基本结构
switch(表达式){
case: 常量1:语句块1;
case: 常量2:语句块2;
case: 常量3:语句块3;
......
default:
default 语句块;
break;
}
- 表达式应当是一个具体的值
- break表示退出
- 没有一个匹配case后的值,自动执行defaul;
流程图
案例
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("输入有误");
}
}
}
注意事项
- switch(表达式),表达式中的数据类型应该和case后的常量类型保持一致,或是可以进行自动类型转换的类型
- 表达式中的返回值必须是(byte,short,int,char,enum[枚举],String)
- case中值必须是常量而不能是变量
- default是可选的
- 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("输入有误");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」