Java基础-switch选择结构,switch与case关键字的使用

温馨提示:本文最后更新于2025年05月29日

switch选择结构的作用

指定一个表达式,根据表达式的值选择执行不同的代码。

switch选择结构的基本语法

switch (表达式) {
  case 常量1:
    //表达式的值为常量1时执行的代码;
    break;
  case 常量2:
    //表达式的值为常量2时执行的代码;
    break;
  default:
    //表达式的值为其他时执行的代码;
    break;
}

switch关键字后面写表达式,case关键字用来判断表达式的值本行中定义的常量值是否相同,相同则执行此case中的代码,不同则继续跳到下一个case关键字做判断。如果所有定义的常量值都不匹配则会执行default中的代码。代码执行完成后需要执行break退出本层级switch选择结构,否则会运行到其他case中的代码,无论值是否匹配!

switch选择结构使用示例

以下是一个简单的switch选择结构,判断用户输入不同数字而运行不同代码:

Scanner scanner = new Scanner(System.in);
//创建Scanner对象,用于接收用户输入

System.out.println("请输入一个整数:");

int num = scanner.nextInt();
//接收用户输入的整数并写入变量num

switch (num) {
  case 1:
    System.out.println("输入了1");
    break;
  case 2:
    System.out.println("输入了2");
    break;
  case 3:
    System.out.println("输入了3");
    break;
  default:
    System.out.println("输入了其他数字");
    break;
}

运行测试:

switch选择结构示例代码运行结果,用户输入1,输出文本为“输入了1”
switch选择结构示例代码运行结果,用户输入2,输出文本为“输入了2”
switch选择结构示例代码运行结果,用户输入5,输出文本为“输入了其他数字”

当然switch选择结构不只能判断整数,也可以判断小数,字符,字符串等,下面是判断字符串的选择结构示例:

Scanner scanner = new Scanner(System.in);
System.out.println("请输入文字:");
String str = scanner.next();
switch (str) {
  case "a":
    System.out.println("输入了a");
    break;
  case "b":
    System.out.println("输入了b");
    break;
  case "c":
    System.out.println("输入了c");
    break;
  default:
    System.out.println("输入了其他文字");
    break;
}

break关键字的作用以及注意事项

break关键字表示退出本层级代码,在switch选择结构中作用即为退出所在的switch选择结构,让代码继续往下运行。

如果不写break关键字,代码会无视后面的case关键字判断,依次运行后面所有case中的代码,直到遇到break关键字才会结束此switch选择结构,下面举例演示。

Scanner scanner = new Scanner(System.in);
//创建Scanner对象,用于接收用户输入

System.out.println("请输入一个整数:");

int num = scanner.nextInt();
//接收用户输入的整数并写入变量num

switch (num) {
  case 1:
    System.out.println("输入了1");
    //此处没有break关键字
  case 2:
    System.out.println("输入了2");
    break;
  case 3:
    System.out.println("输入了3");
    break;
  default:
    System.out.println("输入了其他数字");
    break;
}

将刚才示例代码中case 1中的break;删除

运行测试:

switch选择结构示例代码运行结果,用户输入1,输出文本为“输入了1”和“输入了2”

可以看到输入数字1后依次执行了case 1case 2中的代码,由于执行完case 1中的代码后没有退出switch选择结构,导致忽略了后面case 2的判断条件,直接运行了case 2中的代码,直到遇到下一个break才停止。如果删除所有break关键字,那么会依次运行所有case中的代码,此switch选择结构将无意义。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容