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选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况


相关文章
|
4天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
76 60
|
1月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
58 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
30天前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
2月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
27 3
|
2月前
|
Java
java switch case多个条件
通过本文的介绍,我们详细探讨了Java中 `switch case`语句的多种用法和优化方法。从基本语法到合并多个条件,再到使用枚举、常量和函数优化,`switch case`语句在Java编程中提供了一种灵活且高效的控制流方式。掌握这些技巧,能够编写出更加简洁、可读性强的代码,提高开发效率和代码质量。希望本文能为您在实际开发中提供有价值的参考和指导。
115 2
|
2月前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
2月前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
2月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
87 5
|
2月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
37 1
|
2月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
52 3