8、JAVA入门——switch选择结构

简介: 8、JAVA入门——switch选择结构

1、定义

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

2、语法

switch case 语句语法格式如下:


switch(表达式){
    case 常量 1:
    语句;
    break;    //可选
    case 常量 2:
    语句;
    break;    //可选
    ......        //你可以有任意数量的case语句
    default:      //可选 
    语句;
    break;
  }

-->switch、case、break、default是Java关键字


-->switch后的表达式可以是int、short、byte、char、枚举类型、从 JDK1.7开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。


-->case用于与表达式进行匹配,switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。


-->break用于终止后续语句的执行。


-->default是可选的,当其他条件都不匹配时执行default。


switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。


public class Test {
   public static void main(String args[]){
      //char grade = args[0].charAt(0);
      char grade = 'C';
      switch(grade)
      {
         case 'A' :
            System.out.println("优秀"); 
            break;
         case 'B' :
         case 'C' :
            System.out.println("良好");
            break;
         case 'D' :
            System.out.println("及格");
            break;
         case 'F' :
            System.out.println("你需要再努力努力");
            break;
         default :
            System.out.println("未知等级");
      }
      System.out.println("你的等级是 " + grade);
   }
}


3、执行规律

1)计算switch后表达式的值。


2)将计算结果从上至下依次与case后的常量值比较。


3)如果相等就执行该常量后的代码块,遇到break语句就结束。


4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。


注意事项:


1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。


public static void main(String[] args) {
  /*
   * 根据输入的月份来输出月份属于哪个季节
   * 
   * 12 1 2 冬季
   * 3 4 5 春季
   * 6 7 8 夏季
   * 9 10 11 秋季
   * 
   */
  Scanner sc = new Scanner(System.in);
  System.out.println("请输入月份(1-12):");
  int month =sc.nextInt();
  switch(month){
  case 12:
//    System.out.println("冬季");
//    break;
  case 1:
//    System.out.println("冬季");
//    break;
  case 2:
    System.out.println("冬季");    //输入12,1月时,穿透进入case 2:中
    break;
  case 3:
//    System.out.println("春季");
//    break;
  case 4:
//    System.out.println("春季");
//    break;
  case 5:
    System.out.println("春季");    //输入3,4月时,穿透进入case 5:中
    break;
  case 6:
//    System.out.println("夏季");
//    break;
  case 7:
//    System.out.println("夏季");
//    break;
  case 8:
    System.out.println("夏季");    //输入6,7月时,穿透进入case 8:中
    break;
  case 9:
//    System.out.println("秋季");
//    break;
  case 10:
//    System.out.println("秋季");
//    break;
  case 11:                            
    System.out.println("秋季");    //输入9,10月时,穿透进入case 11:中
    break;
  }
  }


2)case常量值不能相同。


3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。


4、 switch与多重if异同点

相同点:


都是用来处理多分支条件的结构


不同点:


switch选择结构只能处理等值条件判断的情况


多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况


相关文章
|
17天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【9月更文挑战第23天】在Java编程的世界中,异常是程序执行过程中不可避免的事件,它们可能会中断正常的流程并导致程序崩溃。本文将通过浅显易懂的方式,引导你理解Java异常处理的基本概念和高级技巧,帮助你编写更健壮、更可靠的代码。我们将一起探索如何捕获和处理异常,以及如何使用自定义异常来增强程序的逻辑和用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
32 4
|
16天前
|
Java
java基础(1)逻辑控制if、switch
本文继续介绍了Java中的基础逻辑控制语句,包括if-else语句和switch语句。文章通过示例代码展示了if-else语句如何根据条件判断执行不同的代码块,以及switch语句如何根据变量的值执行不同的case分支。还提供了一个使用Scanner类从键盘获取输入,并根据输入的数字输出对应的星期日的示例。最后提到了如何在IDEA中格式化代码。
14 2
|
27天前
|
安全 Java
Java switch case隐藏用法
在 Java 中,`switch` 语句是一种多分支选择结构,常用于根据变量值执行不同代码块。除基本用法外,它还有多种进阶技巧,如使用字符串(Java 7 开始支持)、多个 `case` 共享代码块、不使用 `break` 实现 “fall-through”、使用枚举类型、使用表达式(Java 12 及以上)、组合条件以及使用标签等。这些技巧使代码更加简洁、清晰且高效。
|
2月前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
2月前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
2月前
|
编解码 网络协议 Oracle
java网络编程入门以及项目实战
这篇文章是Java网络编程的入门教程,涵盖了网络编程的基础知识、IP地址、端口、通讯协议(TCP和UDP)的概念与区别,并提供了基于TCP和UDP的网络编程实例,包括远程聊天和文件传输程序的代码实现。
java网络编程入门以及项目实战
|
29天前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
2月前
|
存储 开发者 C#
WPF与邮件发送:教你如何在Windows Presentation Foundation应用中无缝集成电子邮件功能——从界面设计到代码实现,全面解析邮件发送的每一个细节密武器!
【8月更文挑战第31天】本文探讨了如何在Windows Presentation Foundation(WPF)应用中集成电子邮件发送功能,详细介绍了从创建WPF项目到设计用户界面的全过程,并通过具体示例代码展示了如何使用`System.Net.Mail`命名空间中的`SmtpClient`和`MailMessage`类来实现邮件发送逻辑。文章还强调了安全性和错误处理的重要性,提供了实用的异常捕获代码片段,旨在帮助WPF开发者更好地掌握邮件发送技术,提升应用程序的功能性与用户体验。
40 0
|
2月前
|
Java 程序员 UED
Java 中的异常处理:从入门到精通
【8月更文挑战第31天】在Java编程的世界中,异常处理是保持应用稳定性的重要机制。本文将引导你理解异常的本质,学会如何使用try-catch语句来捕获和处理异常,并探索自定义异常类的魅力。我们将一起深入异常的世界,让你的代码更加健壮和用户友好。
|
2月前
|
Java 数据库连接 开发者
Java中的异常处理:从入门到精通
【8月更文挑战第31天】 在编程世界中,错误和异常就像是不请自来的客人,总是在不经意间打扰我们的程序运行。Java语言通过其异常处理机制,为开发者提供了一套优雅的“待客之道”。本文将带你走进Java异常处理的世界,从基础语法到高级技巧,再到最佳实践,让你的程序在面对意外时,也能从容不迫,优雅应对。