Java 学习笔记 Day5:switch 分支结构学习笔记
一、今日学习目标
- 学会
switch的基本语法 - 理解
case、break、default的作用 - 能用
switch写简单菜单系统 - 能区分
if和switch的适用场景 - 完成计算器菜单综合练习
二、switch 是什么?
switch 是 Java 中的一种分支判断结构。
它适合处理这种情况:
一个变量有多个固定取值,根据不同的值执行不同代码。
例如:
1. 查看商品
2. 添加购物车
3. 查看订单
4. 退出系统
用户输入 1,程序执行查看商品。
用户输入 2,程序执行添加购物车。
用户输入其他数字,程序提示输入错误。
这种固定选项判断,非常适合用 switch。
三、switch 基本语法
switch (变量) {
case 值1:
// 变量等于 值1 时执行
break;
case 值2:
// 变量等于 值2 时执行
break;
default:
// 以上 case 都不匹配时执行
break;
}
四、核心关键字说明
1. switch
switch 后面的小括号里放要判断的变量。
switch (choice)
意思是:根据 choice 的值来选择执行哪个分支。
2. case
case 表示匹配某一个固定值。
case 1:
System.out.println("查看商品");
break;
意思是:如果变量的值是 1,就执行这里的代码。
3. break
break 表示结束当前分支,跳出整个 switch。
如果不写 break,程序会继续往下执行,这种现象叫 case 穿透。
示例:
int num = 1;
switch (num) {
case 1:
System.out.println("一");
case 2:
System.out.println("二");
case 3:
System.out.println("三");
}
输出结果:
一
二
三
原因:case 1 执行后没有 break,所以继续往下执行了 case 2 和 case 3。
初学阶段建议:
每个
case后面都写break。
4. default
default 用来处理所有不匹配的情况。
例如:
default:
System.out.println("输入错误");
break;
如果用户输入的值不属于任何一个 case,就会执行 default。
五、if 和 switch 的区别
1. if 适合范围判断
例如成绩判断:
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
这种判断条件是一个范围,例如:
score >= 90
score >= 60
age >= 18
适合用 if。
2. switch 适合固定值匹配
例如菜单选择:
switch (choice) {
case 1:
System.out.println("查看商品");
break;
case 2:
System.out.println("添加购物车");
break;
default:
System.out.println("输入错误");
break;
}
这种判断的是固定值,例如:
1
2
3
4
星期一到星期日
菜单编号
会员等级
适合用 switch。
六、记忆口诀
范围判断用 if
固定选项用 switch
case 后面写冒号
每个 case 加 break
default 处理异常输入
七、今日练习总结
练习 1:商城菜单系统
要求:
欢迎进入商城系统
1. 查看商品
2. 添加购物车
3. 查看订单
4. 退出系统
输入规则:
输入 1:正在查看商品
输入 2:已添加到购物车
输入 3:正在查看订单
输入 4:已退出系统
其他:输入错误
练习 2:会员等级系统
要求:
请输入会员等级:
1. 普通会员
2. 白银会员
3. 黄金会员
4. 钻石会员
输入规则:
输入 1:普通会员,享受 9.5 折
输入 2:白银会员,享受 9 折
输入 3:黄金会员,享受 8 折
输入 4:钻石会员,享受 7 折
其他:会员等级错误
练习 3:星期判断程序
要求:
输入 1-7,输出星期一到星期日
其他数字提示输入错误
练习 4:计算器菜单
要求:
1. 加
2. 减
3. 乘
4. 除
输入两个数字,根据选择进行计算。
注意点:
- 除法要判断除数不能为
0 - 输入无效菜单时要提示错误
- 当前使用
int,所以除法结果是整数除法,例如5 / 2 = 2
八、最终源码
1. ShopMenuDemo.java
package Day1to30;
import java.util.Scanner;
public class ShopMenuDemo {
/**
* 欢迎进入商城系统
* 1. 查看商品
* 2. 添加购物车
* 3. 查看订单
* 4. 退出系统
*/
public static void main(String[] args) {
System.out.println("欢迎进入商城系统");
System.out.println("1. 查看商品");
System.out.println("2. 添加购物车");
System.out.println("3. 查看订单");
System.out.println("4. 退出系统");
System.out.print("请输入你的选择:");
Scanner sc = new Scanner(System.in);
int choice = sc.nextInt();
switch (choice) {
case 1:
System.out.println("正在查看商品");
break;
case 2:
System.out.println("已添加到购物车");
break;
case 3:
System.out.println("正在查看订单");
break;
case 4:
System.out.println("已退出系统");
break;
default:
System.out.println("输入错误");
break;
}
}
}
2. MemberLevelDemo.java
package Day1to30;
import java.util.Scanner;
public class MemberLevelDemo {
public static void main(String[] args) {
/**
* 会员等级系统
* 请输入会员等级:
* 1. 普通会员
* 2. 白银会员
* 3. 黄金会员
* 4. 钻石会员
*/
System.out.println("请输入会员等级:");
System.out.println("1. 普通会员");
System.out.println("2. 白银会员");
System.out.println("3. 黄金会员");
System.out.println("4. 钻石会员");
Scanner sc = new Scanner(System.in);
int level = sc.nextInt();
switch (level) {
case 1:
System.out.println("普通会员,享受 9.5 折");
break;
case 2:
System.out.println("白银会员,享受 9 折");
break;
case 3:
System.out.println("黄金会员,享受 8 折");
break;
case 4:
System.out.println("钻石会员,享受 7 折");
break;
default:
System.out.println("会员等级错误");
break;
}
}
}
3. XqDemo.java
package Day1to30;
import java.util.Scanner;
public class XqDemo {
/**
* 星期判断程序,输入 1-7,输出星期一到星期日。
*/
public static void main(String[] args) {
System.out.println("请输入1-7的数字:");
Scanner sc = new Scanner(System.in);
int week = sc.nextInt();
switch (week) {
case 1:
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;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入错误");
break;
}
}
}
4. JsqMenuDemo.java
package Day1to30;
import java.util.Scanner;
public class JsqMenuDemo {
/**
* 写一个计算器菜单,输入 1-4 分别代表加、减、乘、除,然后输入两个数字进行计算。
*/
public static void main(String[] args) {
System.out.println("请选择运算方式:");
System.out.println("1. 加");
System.out.println("2. 减");
System.out.println("3. 乘");
System.out.println("4. 除");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
if (choice < 1 || choice > 4) {
System.out.println("错误:无效的选择");
return;
}
System.out.println("请输入两个数字:");
int a = scanner.nextInt();
int b = scanner.nextInt();
int result = 0;
String operator = "";
switch (choice) {
case 1:
result = a + b;
operator = "+";
break;
case 2:
result = a - b;
operator = "-";
break;
case 3:
result = a * b;
operator = "*";
break;
case 4:
if (b == 0) {
System.out.println("错误:除数不能为0");
return;
}
result = a / b;
operator = "/";
break;
}
System.out.println(a + operator + b + "=" + result);
}
}
九、Day5 掌握情况
今日已掌握:
switch 基本语法:已掌握
case 匹配固定值:已掌握
break 防止穿透:已掌握
default 处理异常输入:已掌握
简单菜单系统:已完成
会员等级系统:已完成
星期判断程序:已完成
计算器菜单系统:已完成
if 和 switch 的适用场景:已理解
Day5 完成。

浙公网安备 33010602011771号