Java基础学习篇:switch条件语句进阶(最详细版)

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥇博主昵称:小菜元

🍟博客主页小菜元

🥗感谢点赞👍评论🃌

⚇很方便的在线编辑器: Lightly

让我们一起在写作中记录学习吧!

目录

switch使用目的

switch语句的形式

switch语句的注意要点(重点)


switch使用目的

在我们需要通过选择来输出指定内容时(例如:输入1就输出星期一,输入3就输出星期三)这个时候很多初学者都会选择if...else语句来实现,但是这样会导致编写过程冗杂,使得程序执行复杂,为避免这种问题出现,我们可以选择switch条件语句来实现这个内容

switch语句的形式

java 复制代码
public class Test{
    public static void main(String[] args){
        switch(a){
            case b:        //判断b与a是否相等
                            //输出语句执行输出内容
            case c:
                break;    //结束执行
            default:        //加上结束语句
        }
    }
}
            
           
   

以上就是switch的形式,在switch语句中,a的表达式的类型必须是与int类型兼容的基本形式,就是能自动转化为int类型,因此他的合法类型包括:byte、short、char、int类型 (从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量)【每个case后的变量不能相同(称呼:为了便于表述,将switch后的变量成为switch表达式,case后的变量表达式,即a为switch的表达式】

PS:当然变量也可以是枚举类型

switch语句的注意要点(重点)

  1. 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句

  2. 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句(也就是执行了break后直接结束语句)

  3. switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句

    java 复制代码
    public class Test {
       public static void main(String args[]){
          int i = 5;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
             case 2:
                System.out.println("2");
             default:
                System.out.println("default");
          }
       }
    }
    java 复制代码
    public class Test {
       public static void main(String args[]){
          int i = 5;
          switch(i){
             case 0:
                System.out.println("0");
             case 1:
                System.out.println("1");
            default:
                System.out.println("default");
          
             case 2:
                System.out.println("2");
             }
       }
    }

    上述两段代码表示含义相同!

  4. 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回default内容(3表述结果可表达次内容)

  5. 如果switch表达式与某个case表达式匹配或者是与default匹配时就从这个case表达式或者是default开始执行,遇到break即结束,否则就继续执行case后的句子,不检查case表达式的值(case表达式的定义在上方已阐述)

    java 复制代码
    public class Test {
        public static void main(String[] args){
            int x = 4;
            switch(x){
                default:System.out.println("直接输出");
                case 1:System.out.println("测试1");
                case 2:System.out.println("222");break;
                case 3:System.out.println("我是3");
    
            }
        }
    
    }
  6. PS:那就有朋友会问了,如果我后面的case表达式有了对应的值那么我执行顺序是什么呢?答案其实很简单,就是有对应先执行对应

  7. 一般情况下,每个case语句都应该对应一个break以便推出switch语句,但是如果多个表达式对应相同的流程分支就可不必使用

    java 复制代码
    public class Test {
        public static void main(String[] args){
            int x = 2;
            switch(x){
                case 1:System.out.println("测试1");
                case 2:
                case 3:
                case 4:System.out.println(11);  //即case值为234都执行次代码
    
            }
        }
    
    }

    使用整数或者String操作数的switch表达式必须要有default,因为无论操作数值是什么,表达式都要生成一个值

  8. PS:每个case语句一定要加break来终止执行,否则它将会继续执行知道default结束,导致出现大问题!

  9. ++今天的java学习就到此结束了!希望大家能够掌握switch条件语句!++

复制代码
![](https://i-blog.csdnimg.cn/blog_migrate/64bc4bc78178f8c507364d8b2721472f.gif)
相关推荐
guodingdingh23 分钟前
软件开发工作问题总结0718
java·开发语言·数据库
世人万千丶2 小时前
鸿蒙Flutter Flex多子组件权重分配
学习·flutter·华为·harmonyos·鸿蒙
咖啡八杯2 小时前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育2 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵2 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔4 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影4 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
圣光SG5 小时前
Servlet学习笔记
笔记·学习·servlet
Miao121315 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔5 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程