Java 学习笔记 Day5:switch 分支结构学习笔记

一、今日学习目标

  • 学会 switch 的基本语法
  • 理解 casebreakdefault 的作用
  • 能用 switch 写简单菜单系统
  • 能区分 ifswitch 的适用场景
  • 完成计算器菜单综合练习

二、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 2case 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 完成。

posted @ 2026-07-05 19:38  忧桑の民工  阅读(4)  评论(0)    收藏  举报