当前位置: 首页 > news >正文

Java SE入门及基础(10)

switch选择结构

1. 概念

switch 表示开关的意思,为了帮助理解,下面以线路为例,进行解释说明

上图中表示一条带有多个开关的线路,当开关打开时,该开关所控制的灯即被点亮。

2. 语法规则

switch ( 表达式 ){    // 作用在表达式的结果上
        case 常量 1 :    // 如果表达式的结果为常量 1 ,表示该开关被打开,那么代码块 1 将被执行
                //代码块1
                break ;   // 表示开关已经做完事情,跳出 switch
        case 常量 2 :   // 如果表达式的结果为常量 2 ,表示该开关被打开,那么代码块 2 将被执行
                //代码块2
                break ;   // 表示开关已经做完事情,跳出 switch
        case 常量 3 :   // 如果表达式的结果为常量 3 ,表示该开关被打开,那么代码块 3 将被执行
                //代码块3
                break ;   // 表示开关已经做完事情,跳出 switch
        default :   // 如果表达式的结果不在常量 1 、常量 2 、常量 3 中,表示该开关被打开,那么代码块 4 将被执行
                //代码块4
                break ;   // 表示开关已经做完事情,跳出 switch
}

3. switch支持的数据类型

byte   short   int   char    Enum    String
switch 选择结构从 JDK1.7 开始才支持 String 类型

4. 案例

某公司在年终决定对研发部工作人员根据职位级别进行调薪,调薪信息如下:

请从控制台输入员工当前薪水和职位级别,并计算出年终调薪后的薪资。

流程图

代码实现

public class Example8 {
        public static void main ( String [] args ) {
                Scanner sc = new Scanner ( System . in );
                System . out . println ( " 请输入当前薪资: " );
                int salary = sc . nextInt ();
                System . out . println ( " 请输入职位级别: " );
                int level = sc . nextInt ();
                switch ( level ){
                        case 1 :
                                salary += 500 ;
                                break ;
                        case 2 :
                                salary += 800 ;
                                break ;
                        case 3 :
                                salary += 1200 ;
                                break ;
                        case 4 :
                                salary += 2000 ;
                                break ;
                }
                System . out . println ( " 年终调薪后薪资为: " + salary );
        }
}

5. 常见误区

//case 中没有 break 语句。
int level = 2 ;
switch ( level ){ //switch 作用在 level 上,而 level 的值是 2 ,因此会执行 case2
        case 1 :
                salary += 500 ;
                //break;
        case 2 :
                salary += 800 ; // 得到执行,因为该 case 中没有 break 语句,因此会一次往下执行
                //break;
        case 3 :
                salary += 1200 ; // 得到执行
                //break;
        case 4 :
                salary += 2000 ; // 得到执行
                //break;
}
System . out . println ( " 年终调薪后的薪资为: " + salary );
//case 后面的常量重复,编译时会报异常
int level = 2 ;
switch ( level ){ //switch 作用在 level 上,而 level 的值是 2 ,因此会执行 case2
        case 1 :
                salary += 500 ;
                break ;
        case 2 : // 重复的 case
                salary += 800 ;
                break ;
        case 2 : // 重复的 case
                salary += 1200 ;
                break ;
        case 4 :
                salary += 2000 ;
                break ;
}
System . out . println ( " 年终调薪后的薪资为: " + salary );

更多Java SE文章参考:Java SE入门及基础知识合集-CSDN博客

http://www.lryc.cn/news/279753.html

相关文章:

  • Docker五部曲之二:Docker引擎
  • 简单说一下原型与原型链
  • 11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)
  • k8s 部署Jenkins项目
  • #每日一题#力扣#2085.统计出现过一次的公共字符串
  • Python系列(1):简洁优雅,功能强大的编程语言
  • HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 arkTS弹出框回调、监听
  • RabbitMQ(六)消息的持久化
  • mybatisplus配置
  • node-sass@4.7.2 postinstall: `node scripts/build.js`
  • pyDAL一个python的ORM(9) pyDAL的嵌套查询
  • 融资项目——EasyExcel操作Excel文件
  • OAI openair3-NAS-UE-EMM代码解读(续)
  • SQL-条件查询与聚合函数的使用
  • Qt移植曲线显示
  • 基于springboot生鲜交易系统源码和论文
  • vue中鼠标拖动触发滚动条的移动
  • 1、理解Transformer:革新自然语言处理的模型
  • Acwing847 图中点的层次(bfs)
  • windows11通过虚拟机安装Ubuntu20.04
  • 时序预测 | Matlab实现EEMD-SSA-BiLSTM、EEMD-BiLSTM、SSA-BiLSTM、BiLSTM时序预测对比
  • Android14之解决Pixel手机联网出现感叹号(一百八十)
  • Vmware虚拟机问题解决方案 运行虚拟机系统蓝屏 运行虚拟机时报错VT-x
  • uni-app中轮播图实现大图预览
  • 了解什么是UV纹理?
  • 【蓝桥备赛】wzy的数组Ⅱ——简单莫队问题
  • 学习Qt笔记
  • pymssql 报错误解决办法:20002, severity 9
  • Web缓存代理
  • Rust-模式解构