Java流程控制之选择语句
2024-10-19 14:48:55
选择语句
选择语句也称之为判断语句,主要有2种写法,一种是if语句,一种是switch语句。下面我们就详细的介绍一下这2种语句的用法。
判断语句if
- if语句第一种形式: if
格式:
执行流程
- 首先判断关系表达式看其结果是true还是false
- 如果是true就执行语句体
- 如果是false就不执行语句体
执行流程如下图所示
代码举例
package MyCode; public class Demo01If { public static void main(String[] args) { //定义3个变量 int a = 1; int b = 2; int c = 1; //关系表达式判断true还是false if (a == b) { System.out.println("a == b"); } if (a == c) { // 大括号里的是代码体,关系表达式为true执行 System.out.println("a == c"); } System.out.println("其他语句"); } }
代码执行后的结果
- if语句第二种形式: if...else
格式:
执行流程
- 首先判断关系表达式看其结果是true还是false
- 如果是true就执行语句体1
- 如果是false就执行语句体2
代码执行流程如下图所示
代码举例
package MyCode; public class DemoIfElse { public static void main(String[] args) { // 判断给定的数据是奇数还是偶数 // 定义变量 int i = 22; //判断关系表达式看其结果是true还是false if (i % 2 == 0) { //true就执行if后面大括号里的代码 System.out.println("余数为0,偶数"); } else { //false 就执行else后面大括号里代码 System.out.println("余数不为0,奇数"); } } }
代码执行后的结果
- if语句第三种形式: if...else if ...else
格式:
执行流程
- 首先判断关系表达式1看其结果是true还是false
- 如果是true就执行语句体1,后面的关系表达式及语句体不在执行。
- 如果是false就继续判断关系表达式2看其结果是true还是false
- 如果是true就执行语句体2,后面的关系表达式及语句体不在执行。
- 如果是false就继续判断关系表达式…看其结果是true还是false
- …
- 如果没有任何关系表达式为true,就执行语句体n+1。
代码执行流程如下图所示
代码举例
package MyCode; public class DemoIfElseExt { /* 指定考试成绩,判断学生等级 90-100 优秀 80-89 好 70-79 良 60-69 及格 60以下 不及格 */ public static void main(String[] args) { int score = 100; if (score < 0 || score > 100) { System.out.println("你的成绩是错误的"); } else if (score >= 90 && score <= 100) { System.out.println("你的成绩属于优秀"); } else if (score >= 80 && score < 90) { System.out.println("你的成绩属于好"); } else if (score >= 70 && score < 80) { System.out.println("你的成绩属于良"); } else if (score >= 60 && score < 70) { System.out.println("你的成绩属于及格"); } else { System.out.println("你的成绩属于不及格"); } } }
代码执行后的结果
if语句和三元运算符的互换
在某些简单的应用中,if语句是可以和三元运算符互换使用的。 例如:求几个数字的最大值
选择语句switch
格式:
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
代码执行流程如下图所示
代码举例
public class Demo07Switch { public static void main(String[] args) { //定义变量,判断是星期几 int num = 4; //switch语句实现选择 switch (num) { 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; default: System.out.println("数据不合理"); break; // 最后一个break语句可以省略,但是强烈推荐不要省略 } } }
代码执行后的结果
switch语句使用的注意事项:
- 多个case后面的数值不可以重复。
- switch后面小括号当中只能是下列数据类型:基本数据类型:byte/short/char/int 引用数据类型:String字符串、enum枚举
- switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。
- 在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束
最新文章
- Jetstrap 在线构建 Bootstrap 的工具
- Oracle学习总结_day06_视图&;序列&;索引
- 【解决】SQL Server作业中Excel Application不能访问文件
- Java中MVC详解以及优缺点总结
- subilme增加对markdown的高亮支持
- SSIS 学习(5):容器【转】
- Docker系列(一)安装
- Hyper-V介绍
- Hadoop书籍汇总
- MySQL 二进制日志(Binary Log)
- 静态变量static
- 02. Pandas 1|数据结构Series、Dataframe
- Delphi在调WebService的时候加Soap头验证
- 随机生成三个数(break用法)
- C++ Primer读书笔记(3)
- log_output参数是指定日志的存储方式
- Android继承BaseAdapter时要重写的函数的说明
- RocEDU.阅读.写作选择书目
- laravel中上传图片之后图片的处理
- Spring中Aspect的切入点的表达式定义细节
热门文章
- JavaScript 日期格式
- JS PopupAlert
- Mac-关于升级macOS Catalina后,终端试用问题
- Unable to connect to the server: x509: certificate signed by unknown authority
- PWA 学习笔记(一)
- 如何在asm上定位数据块
- [Go]TCP服务中增加消息队列与工作池
- getOutputStream() has already been called for this response 从了解到解决
- OpenCV-3.4.3图像通道处理
- 线段树模板加模板题POJ3468