switch 选择语句
switch 选择语句
概述:
根据一个具体的值去和已经准备好的代码段项去选择和值匹配的代码段的语句
固定语法格式:
switch (表达式) {case 常量值:代码段break;......case 常量值:代码段break;default :代码段break; //如果default放在最后,break可以省略不写}
格式解释:
switch: 开关 java表示选择意思
表达式:他的值就是用来做选择的具体的值【标准值】
case : 选项 后面的书写准备好的代码段
常量:区分case的标记 同时去和标准值进行比对的值
代码段:准备好要执行的事情
break: 打断意思 选择语句中就是结束选择语句的意思
default:默认的意思 做选择适合没有选择到对应的选项要执行的代码段
执行流程:
1、首先计算出表达式的结果值【得到标准值】
2、拿着标准值自上而下的和case的常量值进行匹配
匹配上:执行对应case后面的代码段 遇到break结束选择语句
没有匹配到:执行default项的代码段
代码示例:
从键盘输入 1 到 7 任意一个数字,输出对用的星期一到星期日;(7表示周日)
public static void main(String[] args) {System.out.println("请输入一个数字” ");//创建键盘录入对象Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();switch(a) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7:System.out.println("星期日");break;}}
case 的穿透性:
case项代码中没有break语句,导致选择语句不能直接结束继续执行下一项的代码段的现象
如果多个case项的代码段是一样的代码,可以使用穿透性来完成,提升代码的复用性
代码示例:
键盘录入一个月份,输出这个月份的季节
345 月是春季,678 是夏季,9、10、11 秋季,12、1、2 冬季
其他数字,没有任何季节,录入错误
public static void main(String[] args) {System.out.println("输入一个月份: ");Scanner scanner = new Scanner(System.in);int month = scanner.nextInt();switch (month) {case 3:case 4:case 5:System.out.println("您输入的月份为春季!");break;case 6:case 7:case 8:System.out.println("您输入的月份为夏季!");break;case 9:case 10:case 11:System.out.println("您输入的月份为秋季!");break;case 12:case 1:case 2:System.out.println("您输入的月份为冬季!");break;default:System.out.println("您输入的有误!!");break; }}
switch语句注意事项
1、switch语句的表达式结果的类型有要求:
jdk1.5前:必须是 byte short char int
jdk1.5时:增加了枚举【enum】
jdk1.7时:增加了String
2、case后面只能跟常量
3、default项:
可以写在witch内任意位置,但是在没有匹配case项时永远最后一个执行
建议:写在最后
综合练习
要求:键盘录入一个学生的成绩,int 类型的分数,根据录入的分数,输出分数等级
[90, 100],优秀
[80,90),良好
[60, 80),及格
[0, 60),不及格
使用两种方式完成:
1、使用 if 语句完成
2、使用 switch 语句完成
代码展示:
if语句 代码示例 :
import java.util.Scanner;public class Test01 {public static void main(String[] args) {//从键盘录入成绩System.out.println("请输入你的成绩: ");Scanner scanner = new Scanner(System.in);int score = scanner.nextInt();if(score >= 90 && score<= 100) {System.out.println("优秀");}else if (score >= 80 && score < 90) {System.out.println("良好");}else if (score >= 60 && score < 80) {System.out.println("及格");}else if (score >= 0 && score < 60) {System.out.println("不及格 ");}else {System.out.println("成绩输入有误!!");}}}
switch 选择语句 代码示例:
import java.util.Scanner;public class Test01 {public static void main(String[] args) {// 键盘录入成绩Scanner sc = new Scanner(System.in);System.out.println("请输入你的成绩:");int score = sc.nextInt();// 使用选择语句完成需求if (score >= 0 && score <= 100) {switch (score / 10) {case 0:case 1:case 2:case 3:case 4:case 5:System.out.println("不及格");break;case 6:case 7:System.out.println("及格");break;case 8 :System.out.println("良好");break;case 9 :case 10:System.out.println("优秀");break;}}else {System.err.println("你的成绩输入有误!!");}}}
switch 选择语句相关推荐
- Switch 选择语句的简单使用
代码: #include<iostream> #include<cstdio> using namespace std;//使用统一命名标准,防止命名冲突 int main() ...
- switch选择语句在控制台实现一个简易的计算器(+ - * / %)
switch选择语句在控制台实现一个简易的计算器(+ - * / %) public class TestSwitch11 {public static void main(String args[] ...
- Java中Switch选择语句的用法
Switch语句的形式: Switch(表达式) {case 常量:语句;break;case 常量:语句;break;...default:语句; } 举例 根据输入的数字判断月份: public ...
- java选择语句中switch的用法(详细介绍)
一.什么时候用switch? 在java中控制流程语句是由选择语句.循环语句.跳转语句构成.选择语句包括 if 和 switch,在过多的使用 if 语句嵌套会使程序很难阅读,这时利用 switch ...
- c语言switch scanf语句,C语言中scanf函数与switch语句
----------------switch---------------- 1)使用格式 switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; ... c ...
- c语言switch中用ifelse,初学者求问:用if单分支选择语句替换switch语句?if.else呢...
菜鸟求问:用if单分支选择语句替换switch语句?if...else呢? 主要是关于default情况的处理,代码如下: /* Fig. 4.7: fig04_07.c Counting lette ...
- 【明解C语言】选择语句之switch
目录 一.switch语句的语法 二.switch语句的使用 1. 无break 2.有break 3. 代码运行分析 三.switch语句注意事项 四.default语句 五.练习题 [明解C语言] ...
- 【Java选择语句(if,else,switch)】
Java选择语句 选择结构包括if语句与switch语句 if语句分为:if:if,else:if,else if ,else三种结构. if语句 if结构 格式: if(关系表达式){语句体 } 执 ...
- 选择语句switch和循环语句while
1.选择语句switch switch的基本结构是: switch(整型表达式) { 语句项: } 比如求星期几,就可以用这样一个程序: #include <stdio.h>int mai ...
最新文章
- Git入门教程(上)
- 移动机器人建图与导航代码实现——3.Path Tracking
- Windows Server 2012正式版RDS系列④
- Java中的数据类型及相互转换方法
- 模拟 Codeforces Round #288 (Div. 2) A. Pasha and Pixels
- @Param注解在dao层的使用
- 19.Linux-USB总线驱动分析
- DHCP+NAT+IP隧道
- SpringBoot 实战 (二) | 第一个 SpringBoot 工程详解
- psftp查看服务器上的文件,PSFTP自动登录SFTP服务器,上传指定文件...
- 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法
- VS+Qt应用开发-设置鼠标光标
- C++题解:矩阵快速幂 求 斐波那契数列
- 生命计算机在线,抖音生命计算器在线测试
- Token验证失败的解决方法
- jackson java用法_Jackson 使用方法总结
- 数据分析从零到精通第二课 Hive和Spark入门
- 干货!网络推断与数据驱动的影响力最大化问题
- 关于出现 linux Table is marked as crashed and should be repaired
- 【机器学习】之 主成分分析PCA
热门文章
- 截图:截取当前程序的界面,并保存到bmp图片中。
- mysql5.6.20安装详解_MySql 5.6.20 安装 使用
- javascript最新版本_JavaScript 引擎「V8」发布 8.0 版本,内存占用量大幅下降
- 今晚直播 | Oracle技术加油站:快速处理紧急性能问题的工具与经验
- 关于 AWR/ASH 故障分析,我有 9 个问题不知当不当问?
- 留言送书丨《Oracle高性能系统实战大全》包邮到家
- SQL无所不能:DBA宝妈宝爸系列分享
- 经验:Library Cache Lock之异常分析-云和恩墨技术通讯精选
- 在springboot中,如何读取配置文件中的属性
- COG云原生优化遥感影像,瓦片切分的应用实践