c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)

67e400a38263ae93f5acf0f0a0bc9632.png

流程控制就是对事物次序的布置和安排,在程序中就是对代码执行次序的安排和控制

程序中的流程控制主要有三种:顺序流程、选择流程、循环流程。

顺序流程:比如打印输出的代码按照指定的顺序结构依次排序,打印的结果按照代码的顺序执行打印;

循环流程:选择结构的代码实现;

循环流程:循环结构的代码实现;

一、顺序结果

顺序结构最容易理解也比较简单,执行顺序就是代码编写的顺序,从上到下执行。简单举个例子:

public static void main(String[] args){//顺序执行,根据编写的顺序,从上到下运行System.out.println(1);System.out.println(2);System.out.println(3);
}
输出:
1
2
3

二、选择结构

Java代码中存在一种特殊的语句,叫做选择语句,这种选择语句也需要对一些条件作出判断,从而选择对应执行的代码。这种选择语句组成的代码结构就是选择结构

选择语句分为两种:if条件语句、switch条件语句。

1. if语句

if语句是满足某种要求的条件就进行某种处理。格式:

...//其他语句
if (布尔表达式) {    //它的结果只有true或false语句体;    //满足条件后执行的代码
}

执行流程:

  • 首先判断布尔表达式,看其结果是true还是false
  • 如果是true,执行语句体
  • 如果是false就不执行语句体,

718e6b51ed5830ab68078bc429f634ac.png

举例:

public static void main(String[] args){System.out.println("小明出来玩了")//int age=16;int age=20;//20岁if(age>=18){System.out.println("小明去上网了");}System.out.println("小明回家了")
}

2. if...else语句

if...else语句是指如果满足某种条件就进行某种处理,否则就进行另一种处理,格式:

if (布尔表达式){语句体1;
} else {语句体2;
}

执行流程:

  • 首先判断布尔表达式看结果
  • 如果是true就执行语句体1
  • 如果是false就执行语句体2

53d1fa09e118d7c24ff614e2bf22dd6e.png

举例:

public static void main(String[] args){// 判断给定的数据是奇数还是偶数// 定义变量int a = 1;if(a % 2 == 0) {System.out.println("a是偶数");} else{System.out.println("a是奇数");}System.out.println("结束");
}

3. if...else if...else语句

if...else if ...else可以对多个条件进行判断,进行多种不同的处理。

格式:

if (判断条件1) {执行语句1;
}else if (判断条件2) {执行语句2;
}
...
}else if (判断条件n) {执行语句n;
} else {执行语句n+1;
}

执行流程

  • 首先判断布尔表达式1看其结果是true还是false
  • 如果是true就执行语句体1
  • 如果是false就继续判断布尔表达式2看其结果是true还是false
  • 如果是true就执行语句体2
  • 如果是false就继续判断布尔表达式…看其结果是true还是false
  • 如果没有任何布尔表达式为true,就执行语句体n+1。

61456c227e3f723f099c147df5676764.png

举例:

public static void main(String[] args) {    int socre=99;//定义变量记录分数if(socre>=90&&socre<=100) {System.out.println("成绩是优秀的!");} else if(socre>=80&&socre<90) {System.out.println("成绩很好!");} else if(socre>=70&&socre<80) {System.out.println("成绩良好!");} else if(socre>=60&&socre<70) {System.out.println("成绩及格!");} else if(socre>=0&&socre<60) {System.out.println("成绩不及格!");} else {System.out.println("不合法成绩");}  
}

4. switch语句

switch条件语句也是一种比较常用的选择语句,和if条件语句不同的是,switch只能针对某个表达式的值作出判断,从而决定程序执行那一段代码。

格式:

switch(表达式) {//具体的某个变量case 常量值1:语句体1;break;
​case 常量值2:语句体2;break;...default:语句体n+1;break;
}

注意:switch的表达式只能是byte、short、int、char、Enum、String。

执行流程:

  • 首先计算出表达式的值
  • 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  • 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

606f2ec39eeebd76ba26c16844bb07be.png

举例:

public static void main(String[] args) {//定义变量,判断是星期几int weekday = 6;//switch语句实现选择switch(weekday) {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不能漏写,漏写了会出现case穿透

其实case的穿透性不算是一个bug,用好了可以简练代码,实际开发中可以灵活运用case穿透性解决相应的需求,用的不好会改变代码逻辑。如果case的后边不写break,将出现穿透现象,不再判断下一个case指,直接向后运行直到遇见break;

举个简单的例子:

public static void main(String[] args) {int week=1;switch(week) {case 1:case 2:case 3:case 4:case 5:System.out.println("工作日");break;case 6:case 7:System.out.println("休息日");break;default :System.out.println("数字不在1~7范围之内,请重新指定");}
}

三、循环结构

Java中一段代码重复执行的语句叫做循环语句,这种循环语句形成的结构就叫做循环结构。

循环语句有三种:for语句、while语句、do...while语句。

1. for语句

格式:

for ( 初始化语句① ; 判断条件语句② ; 控制条件语句④ ) {循环体语句③}

执行流程:

  • 执行顺序:①②③④>②③④>②③④…②不满足为止。
  • ①负责完成循环变量初始化
  • ②负责判断是否满足循环条件,不满足则跳出循环
  • ③具体执行的语句
  • ④循环后,循环条件所涉及变量的变化情况

5068b008d245cf3d428df01b3a69c0e8.png

举例:

public static void main(String[] args) {//1.定义一个初始化变量,记录累加求和,初始值为0int sum = 0;//2.利用for循环获取1-100之间的数字for (int i = 1; i <= 100; i++) {//3.判断获取的数字是奇数还是偶数if(i % 2==0){//4.如果是偶数就累加求和sum += i;}}//5.循环结束之后,打印累加结果System.out.println("sum:"+sum);
}

注意:

  • 初始化语句i可以是任意的数字
  • 判断语句一定要保证条件有边界,可以让程序停下来,否则就会出现死循环
  • 控制语句可以变通,主要目的是让循环变量变化
  • 循环变量出了循环结构就不能使用

2. 循环语句while

格式:

初始化语句① 
while ( 条件判断② ) {循环体语句③  条件控制语句(步进表达式)④  
}

和for循环功能一样,只不过关键字不一样,代码结构不一样。和选择结构中的if判断也有点类似,满足条件就执行 {} 内的语句,区别在于while语句会反复地执行,知道条件不成立。

执行流程:

  • 执行顺序:①②③④>②③④>②③④…②不满足为止。
  • ①负责完成循环变量初始化。
  • ②负责判断是否满足循环条件,不满足则跳出循环。
  • ③具体执行的语句。
  • ④循环后,循环变量的变化情况。

d49c729cbc33f4ea00f4f0cb85aae7b2.png

举例:

public static void main(String[] args) {//使用while循环实现//定义一个变量,记录累加求和int sum = 0;//定义初始化表达式int i = 1;//使用while循环让初始化表达式的值变化while(i<=100){//累加求和sum += i ;//步进表达式改变变量的值i++;}//打印求和的变量System.out.println("1-100的和是:"+sum);
}

注意:控制变量语句不能忘记,否则会出现死循环。

3. do...while语句

格式:

初始化表达式①
do{循环体③条件控制语句④ 
}while(条件判断语句 ②); //这里有分号结束

执行顺序:①③④>②③④>②③④…②不满足为止。

举例:

public static void main(String[] args) {int x=1;do {System.out.println("HelloWorld");x++;}while(x<=10);
}

注意:

  • while后边一定要有分号结束
  • 无论条件是否满足都会先执行一次循环体,然后再去根据判断是否继续执行。

4. 嵌套循环

嵌套循环是指一个循环语句中再定义一个循环语句的语法结构。

for嵌套循环格式:

for(初始化表达式①; 循环条件②; 控制条件语句⑦) {   //分针    for(初始化表达式③; 循环条件④; 控制条件语句⑥) {  //秒针        执行语句⑤;        }        
}

执行流程:

假如外层循环执行2次,内循环执行次数2次执行顺序:

第一次循环:①②>③④⑤⑥>④⑤⑥>④

第二次循环:⑦②>③④⑤⑥>④⑤⑥>④>⑦②

5. 跳转语句

调整语句主要有两个:break和continue

break:

使用场景:终止switch或循环

这里主要说一下在循环语句中的作用,当出现在循环语句中,作用就是终止并跳出循环,继续执行循环结构后边的代码:

while循环举例:

public static void main(String[] args){int x=1;        //定义变量x,初始值为1while(x<=10){   //循环条件      if(x==3){   //跳出循环的条件是当x==3的时候break;  //跳出循环}System.out.println("x="+x);//条件成立,打印x的值       x++;        //x进行自增}
}
//不加break将会执行10次,加了break当x==3时候就跳出循环

for循环中举例:

public static void main(String[] args){for(int x=1;x<=10;x++){ System.out.println("x="+x);//打印x的值if(x==3){   //跳出循环的条件是当x==3的时候break;  //跳出循环}}
}

特别注意:当break语句出现在嵌套循环中的内层循环是,它只能跳出内层循环,如果想跳出到外层循环需要在外层循环的关键字前添加标记,然后跳转到标记,这样才能跳出外层循环。

public static void main(String[] args)  {int y=1;demo: while(y<10) {                       for(int x=1; x<=9; x++) {                System.out.println("x="+x);//打印x的值                if(y==3) {  //跳出循环的条件是当x==3的时候                  break demo; //跳出demo循环}                }                      y++;}}

continue:

continue是结束本次循环,继续下一次循环。

//求1-100之间的奇数的和
public static void main(String[] args) {int sum=0;    for (int i = 1; i <= 100; i++) {if(i % 2==0){  //如果是偶数,结束本次循环continue;}sum+=i;//不断累加                }System.out.println(sum);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会...

点击上方蓝字&#xff0c;关注并星标&#xff0c;和我一起学技术。今天我们来介绍git当中两个非常非常好用的工具&#xff0c;git show和reflog。这两个命令虽然不是必知必会&#xff0c;但是如果熟练使用可以极大地帮助我们查看代码仓库的问题&#xff0c;以及在我们操作失误的…

计算机指令执行与时序逻辑,时序逻辑系统

时序逻辑电路其任一时刻的输出不仅取决于该时刻的输入&#xff0c;而且还与过去各时刻的输入有关。常见的时序逻辑电路有触发器、计数器、寄存器等。时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号&#xff0c;而且还取决于电路原来的状态&#xff0…

flume连接kafka_日志收集系统架构设计:(flume+zookeeper+kafka+php+mysql )

正文内容一、安装jdk二、安装flume三、安装kafka1、zookeeper2、kafka四、启动测试步骤五、目录说明六、日志收集系统设计图七、大数据参考资料推荐一、安装jdk -(版本&#xff1a;1.8.0_191)1.下载&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/jdk8…

2020班徽设计图案高中计算机,高铁工程学院举办2020级班徽设计大赛

大赛现场12月3日&#xff0c;高铁工程学院团总支第四届“班徽设计”大赛在GB250教室隆重举行&#xff0c;高铁工程学院20级新生各班参赛&#xff0c;20级辅导员代表出席评委席并参与评分。获奖选手领取证书本次比赛采用了线下评分及线上投票相结合的方式。比赛开始&#xff0c;…

Web浏览器没有Flash如何播放RTMP协议直播

各大主流浏览器在很早的时候就已声明 2020 年底不支持 Adobe Flash。所以已经线上运行的项目以及涉及直播的项目&#xff0c;都会涉及一个问题 &#xff1a; “没有 Adobe Flash 在 Web 浏览器端如何播放 RTMP 直播流&#xff1f;” 还好有先见之明&#xff0c;我参与涉及直播的…

video-js RTMP直播

目前主流的几种直播协议 协议传输方式视频封装格式延时数据分段html播放httpflvhttpflv低连续可通过html5解封包播放(flv.js)rtmptcpflv tag低连续不支持dashhttpts文件高切片可通过html5解封包播放(hls.js)hls$1mp4 3gp webm高切片如果dash文件列表是mp4webm文件&#xff0c;…

EJB到底是什么?(通俗易懂白话文)

1. 我们不禁要问&#xff0c;什么是"服务集群"&#xff1f;什么是"企业级开发"&#xff1f; 既然说了EJB 是为了"服务集群"和"企业级开发"&#xff0c;那么&#xff0c;总得说说什么是所谓的"服务 集群"和"企业级开发&…

ABC334 A-F

打的很懒的一场B卡了D看不懂题卡了F没看完题目理解错题意了&#xff0c;状态好差XD UNIQUE VISION Programming Contest 2023 Christmas (AtCoder Beginner Contest 334) - AtCoder A - Christmas Present 题意&#xff1a; 给出两个数B, G问哪个大 题解&#xff1a; 凑数…

华为笔记本matebook13_华为引领“第三代移动办公”新纪元 华为MateBook开启“智慧化办公”新赛道...

&#xfeff;运营商财经网 康钊/文移动互联网的快速兴起&#xff0c;让办公形式不再受时间、地点的限制&#xff0c;笔记本电脑、平板电脑、手机等承担生产力工具作用的电子设备也是越来越多样化&#xff0c;“移动办公”正成为一种不断演化市场趋势。然而&#xff0c;随着移动…

IPv4地址和IPv6地址的比较,IPv6地址及其表示

IPv4地址和IPv6地址的比较&#xff0c;IPv6地址及其表示 TCP/IP协议是互联网发展的基石&#xff0c;其中IP是网络层协议&#xff0c;规范互联网中分组信息的交换和选路。目前采用的IPv4协议地址长度为32位&#xff0c;总数约43亿个IPv4地址已分配殆尽。 IPv6是IP地址的第六版…

MySQL如何有效的存储IP地址

文章目录序言工具类实现转换数据库函数实现转换一、IP地址应该怎么存二、整数存储 IP 地址的查询性能实验1、测试范围查询&#xff1a;2、IP精确查询&#xff1a;3、整理一下结果发现&#xff1a;总结首先就来阐明一下部分人得反问&#xff1a;为什么要问IP得知怎样存&#xff…

ab753变频器参数怎么拷贝到面板_变频器怎么设置参数?变频器的基本参数设定...

电工学习网&#xff1a;www.diangon.com技术驱动未来&#xff0c;关注电工学习网官方微信公众号“电工电气学习”&#xff0c;收获更多经验知识。变频器在工业生产中应用及其重要&#xff0c;其除了调速&#xff0c;软启动作用外&#xff0c;最重要的是可以节能。变频器功能参数…

卢克增加服务器,DNF卢克跨区服务器崩溃?策划:暗制造者临时加入安图恩攻坚...

原标题&#xff1a;DNF卢克跨区服务器崩溃&#xff1f;策划&#xff1a;暗制造者临时加入安图恩攻坚DNF作为一款即时在线&#xff0c;2d网络游戏&#xff0c;决斗场系统延伸到早期60级版本组队刷图。玩家与玩家之间互动&#xff0c;即时刷图跨区&#xff0c;成为了阿拉德大陆一…

使用TortoiseGit(小乌龟)操作分支的创建

现在的我的github库上面只有一个master分支 由于是穷屌丝用不起mac&#xff0c;所以我windows为例进行相应的演示&#xff1a; 下图就是本地使用小乌龟的版本管理工具在只有一个分支的情况下执行命令&#xff1a;Switch/Checkout 显示的内容。 下面分为三个步骤进行创建分支操…

计算机丢失d3dcompile,电脑d3dcompiler43.dll文件丢失怎么办 文件丢失解决方法

最近有位用户私信给小编&#xff0c;说他在使用电脑的时候&#xff0c;电脑一直弹出丢失d3dcompiler43.dll文件的弹窗。就算是关闭&#xff0c;下次开机依旧会弹出这样的窗口&#xff0c;十分厌烦。那丢失电脑中的d3dcompiler43.dll文件应该怎么办呢&#xff1f;其实也不难&…

mybatis plus 导出sql_软件更新丨mybatis-plus 3.0.7 发布,辞旧迎新

点击右上方&#xff0c;关注开源中国OSC头条号&#xff0c;获取最新技术资讯Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件&#xff0c; 减少你的开发周期优化动态维护 XML 实体字段&#xff0c;无入侵全方位 ORM 辅助层让您拥有更多时间陪…

网站服务器怎么用手机登录不了怎么办,怎么打不开服务器列表了?

2011-04-19网页图片打不开是不是中毒呢&#xff1f;以前网页中没有图片、视频、动画、声音。打开IE选工具/Internet选项/高级/在设置的下拉列表&#xff0c;勾选“播放网页中的动画”“播放网页中的声音”“播放网页中的视频”“显示图片”(也可以直接选择高级中下面的“还原默…

ur机械臂 控制器_OnRobot末端执行器和统一接口已通过UR +计划认证

近日&#xff0c;OnRobot 宣布其One System Solution末端执行器和统一接口现已通过UR 计划认证&#xff0c;UR 计划对夹具等配件进行测试和认证&#xff0c;以便与Universal Robots A / S协作机器人手臂无缝配合使用。OnRobot在9月份发布了全系列的机械手和传感器&#xff0c;具…

xp系统打印机服务器设置,WinXP打印机纸张规格设置的方法

电脑的打印机是我们常常会使用的外部输出设备&#xff0c;虽说经常在用&#xff0c;但是关于它的很多问题还是不会&#xff0c;比如说怎么对打印机纸张规格设置&#xff0c;那么当你遇到这个问题不会的话&#xff0c;那就赶紧看看小编整理的WinXP打印机纸张规格设置的方法吧&am…

stm32的语音识别_基于stm32循迹避障语音控制金属探测蓝牙小车设计(原理图+pcb+源码+参考文档)...

功能描述及设计原理&#xff1a;小车具有检测里程功能&#xff0c;在金属探测模式&#xff0c;槽型光耦会检测小车车轮的圈数&#xff0c;以此来计算小车行走的里程&#xff0c;并可以通过OLED屏幕显示出来。还可以显示小车的工作模式以及小车距离前方障碍物的距离。》默认模式…