当前位置: 首页 > 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博客

相关文章:

Java SE入门及基础(10)

switch选择结构 1. 概念 switch 表示开关的意思,为了帮助理解,下面以线路为例,进行解释说明 上图中表示一条带有多个开关的线路,当开关打开时,该开关所控制的灯即被点亮。 2. 语法规则 switch ( 表达式 ){ //…...

Docker五部曲之二:Docker引擎

文章目录 前言Docker引擎镜像管理容器管理容器运行前台运行和后台运行容器识别重启策略清除 容器日志 数据管理卷挂载创建和管理卷启动带有卷的容器通过Docker Compose使用卷使用只读卷备份、恢复和迁移卷 绑定挂载用绑定挂载启动一个容器Docker Compose使用绑定挂载使用只读绑…...

简单说一下原型与原型链

文章目录 原型原型链 原型 简单来说原型就像是对象的 “爸爸”,每个对象都有一个原型。当你创建一个对象时,这个对象就会有一个内部链接,指向它的原型。你可以把原型想象成对象的一种模板,对象可以从中继承属性和方法。 举个例子…...

11Spring IoC注解式开发(上)(元注解/声明Bean的注解/注解的使用/负责实例化Bean的注解)

注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 注解开发的优点:提高开发效率 注解开发的缺点:在一定程度上违背了OCP原则,使用注解的开发的前提是需求比较固定,变动较小。 1 注解的注解称为元注解 自定义一个注解: package com.sunspl…...

k8s 部署Jenkins项目

1、基于helm 部署jenkins 要求:当前集群配置了storageClass,并已指定默认的storageClass,一般情况下,创建的storageClass即为默认类 指定默认storageClass的方式 # 如果是新创建默认类: apiVersion: storage.k8s.io/v1…...

#每日一题#力扣#2085.统计出现过一次的公共字符串

给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 示例 1: 输入:words1 [“leetcode”,“is”,“amazing”,“as”,“is”], words2 [“amazing”,“leetcode”,“is”] 输出:…...

Python系列(1):简洁优雅,功能强大的编程语言

Python:简洁优雅,功能强大的编程语言 一、Python的特点二、Python的应用领域 在当今的编程世界中,Python已经成为了一种无处不在的语言。它不仅简单易学,而且功能强大,支持多种编程范式,包括面向对象编程、…...

HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 arkTS弹出框回调、监听

HarmonyOS应用开发学习笔记 arkTS自定义弹窗(CustomDialog)简单使用 1、CustomDialog装饰器用于装饰自定义弹框 1、定义弹出框 CustomDialog CustomDialog export struct CustomDialogExample {controller: CustomDialogControllerbuild() {Column() {…...

RabbitMQ(六)消息的持久化

目录 一、简介1.1 定义1.2 消息丢失的场景 二、交换机的持久化方式一:直接 new方式二:channel.exchangeDeclare()方式三:ExchangeBuilder【推荐】 三、队列的持久化方式一:直接 new方式二:channel.queueDeclare()方式三…...

mybatisplus配置

一、新建项目&#xff1a;com.saas.plusdemo 二、配置pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…...

node-sass@4.7.2 postinstall: `node scripts/build.js`

Can‘t find Python executable “D:\Python36\python.EXE“, you can set the PYTHON env variable.-CSDN博客 gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at Chil…...

pyDAL一个python的ORM(9) pyDAL的嵌套查询

假设有以下两个表&#xff1a; db.define_table(person,Field(id, string), Field(‘name, string), Field(‘dept, string)) db.define_table(things,Field(id, string), Field(‘name, string), Field(‘owner, string)) 一、使用belongs进行嵌套查询 我们查询要求&#…...

融资项目——EasyExcel操作Excel文件

EasyExcel是Alibaba集团开源的EasyExcel技术&#xff0c;该技术是针对Apache POI技术的封装和优化&#xff0c;主要解决了POI技术的耗内存问题&#xff0c;并且提供了较好的API使用。不需要大量的代码就可以实现excel的操作功能。 1.EasyExcel的配置 首先引入依赖&#xff0c;…...

OAI openair3-NAS-UE-EMM代码解读(续)

文件路径openair3/NAS/UE/EMM/emm_main.c 714行之后 1.名称&#xff1a;emm_min_get_registered_plmn&#xff08;&#xff09; 获取当前注册PLMN的标识&#xff1b; 输入&#xff1a;format&#xff1a;PLMN标识符的字符串表示的请求格式&#xff1b; 输出&#xf…...

SQL-条件查询与聚合函数的使用

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…...

Qt移植曲线显示

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、确定文件组成&#xff1f;1. 复制新文件2.新建ui窗口 二、实际操作2.1 新建Ui窗口&#xff0c;要添加带.h的否则跳转错误2.2添加文件到.h2.3 添加文件cpp 三…...

基于springboot生鲜交易系统源码和论文

首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括软件架构模式、整体功能模块、数据库设计。本项…...

vue中鼠标拖动触发滚动条的移动

前言 在做后端管理系统中&#xff0c;像弹窗或大的表单时&#xff0c;经常会有滚动条的出现&#xff0c;但有些时候如流程、图片等操作时&#xff0c;仅仅使用鼠标拖动滚动条操作不太方便&#xff0c;如果使用鼠标拖拽图片或容器来触发滚动条的移动就比较方便了 功能设计 如…...

1、理解Transformer:革新自然语言处理的模型

目录 一、论文题目 二、背景与动机 三、卖点与创新 四、解决的问题 五、具体实现细节 0. Transformer 架构的主要组件 1. 注意力、自注意力&#xff08;Self-Attention&#xff09;到多头注意力&#xff08;Multi-Head Attention&#xff09; 注意力到底是做什么的&…...

Acwing847 图中点的层次(bfs)

这道题用的是bfs&#xff0c;一开始用了dfs搜出了答案为4 题目 给定一个 n个点 m 条边的有向图&#xff0c;图中可能存在重边和自环。 所有边的长度都是 1&#xff0c;点的编号为 1∼n。 请你求出 1 号点到 n 号点的最短距离&#xff0c;如果从 1 号点无法走到 n 号点&…...

避开这些坑!医疗内窥镜Zemax优化时的高温灭菌与弯曲成像难题解决指南

医疗内窥镜光学系统设计实战&#xff1a;高温灭菌与弯曲成像的Zemax解决方案 在微创手术和工业检测领域&#xff0c;直径仅2.8mm的医疗内窥镜需要同时满足140广角视场、F2.0大光圈和10μm高分辨率的要求。更严峻的挑战来自使用环境——必须耐受135℃高温蒸汽灭菌&#xff0c;并…...

保姆级教程:用Docker Compose一键部署带汉化和HTTPS的n8n,并配置反向代理(Nginx)

企业级n8n自动化平台全栈部署实战&#xff1a;从容器编排到安全加固 在数字化转型浪潮中&#xff0c;自动化工作流平台已成为企业降本增效的核心基础设施。n8n作为GitHub上增长最快的开源自动化工具之一&#xff0c;凭借其可视化编排能力和400节点生态&#xff0c;正在重塑企业…...

高效音乐资源获取:Soundcloud Music Downloader全功能解析

高效音乐资源获取&#xff1a;Soundcloud Music Downloader全功能解析 【免费下载链接】scdl Soundcloud Music Downloader 项目地址: https://gitcode.com/gh_mirrors/sc/scdl 基于Python的跨平台音乐资源管理方案 一、音乐下载的痛点与解决方案 在数字音乐时代&…...

永磁同步电机全速域无位置传感器控制策略仿真研究:高频注入与改进滑膜控制方法应用

40、永磁同步电机全速域无位置传感器控制仿真&#xff08;仿真代码参考文献说明文档&#xff09; 主要内容&#xff1a; 采用高频注入改进滑膜控制方法&#xff0c;PMSM矢量控制仿真 [1]零低速域&#xff0c;采用无数字滤波器高频方波注入法&#xff0c;减少滤波的相位影响&…...

全向轮底盘运动控制:嵌入式PID与逆运动学实现

1. 全向轮底盘控制库&#xff08;omni_wheel&#xff09;技术解析与工程实践1.1 项目背景与工程定位omni_wheel是为B团队自主移动机器人开发的底层运动控制模块&#xff0c;最初版本发布于2018年7月10日。从其原始README描述“PIDかけて一方向に進むだけのプログラムでござんす…...

3大核心功能:让iOS推送调试效率提升10倍的SmartPush工具全解析

3大核心功能&#xff1a;让iOS推送调试效率提升10倍的SmartPush工具全解析 【免费下载链接】SmartPush SmartPush,一款iOS苹果远程推送测试程序,Mac OS下的APNS工具APP,iOS Push Notification Debug App 项目地址: https://gitcode.com/gh_mirrors/smar/SmartPush 一、问…...

MATLAB驱动的焊接机器人智能轨迹优化与动态仿真实践

1. 焊接机器人轨迹优化的技术挑战 焊接机器人在现代制造业中扮演着越来越重要的角色&#xff0c;但要让机器人焊得又快又好&#xff0c;可不是件简单的事。想象一下&#xff0c;你要用焊枪在复杂的三维曲面上画出一条完美的焊缝&#xff0c;既要保证焊接质量&#xff0c;又要避…...

能源监控项目避坑指南:为什么DLT645电表直连Modbus系统会失败?

能源监控项目避坑指南&#xff1a;为什么DLT645电表直连Modbus系统会失败&#xff1f; 在智慧能源项目的实施过程中&#xff0c;数据采集的可靠性直接关系到整个系统的运行效果。许多项目团队在遇到DLT645规约电表与Modbus系统对接时&#xff0c;往往会尝试直接连接&#xff0c…...

项目分享|VibeVoice:微软开源的前沿语音AI

引言 在语音合成&#xff08;TTS&#xff09;技术领域&#xff0c;长篇幅、多说话者、低延迟的自然语音生成一直是行业痛点。传统TTS模型往往受限于生成时长、说话者数量或实时响应速度&#xff0c;难以满足播客制作、智能对话等复杂场景需求。微软开源的VibeVoice框架彻底打破…...

如何高效使用抖音批量下载工具:3个技巧让视频收集效率提升90%

如何高效使用抖音批量下载工具&#xff1a;3个技巧让视频收集效率提升90% 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在短视频内容爆炸的时代&#xff0c;抖音作为国内领先的内容平台&#xff0c;每天产…...