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,一经查实,立即删除!

相关文章

计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf

文档介绍&#xff1a;计算机绘图 AutoCAD实训任务书与指导书机械制图教研室编写河北工业职业技术学院2004 年 6 月计算机绘图 AutoCAD实训任务书适用专业:高职机电、模具、数控、机制等专业一、“计算机绘图实训周”的性质“计算机绘图实训周”是根据机械制图教学大纲要求安排的…

五种常见流媒体协议

五种常见流媒体协议 流媒体&#xff08;streaming media&#xff09;是指将一连串数据压缩后&#xff0c;经过网络分段发送&#xff0c;即时传输以供观看音视频的一种技术。 通过使用 streaming media 技术&#xff0c;用户无需将文件下载到本地即可播放。由于媒体是以连续的…

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

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

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

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

三种主流流媒体协议比较

一、介绍 在流媒体协议中&#xff0c;常用的流媒体协议主要有 HTTP协议&#xff0c;RTSP协议和RTMP协议。 在国内视频网站多采用HTTPMP4或者HTTPFLV协议传输视频&#xff0c;而国外使用RTMP&#xff0c;RTSP等专门的流媒体格式。 二、协议介绍 1、HTTP协议: HTTP的视频协议…

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;我参与涉及直播的…

opencv运动目标跟踪预测_基于Opencv的运动目标的检测和跟踪.pdf

第 20卷 第 l2期 电子设计工程 2012年 6月Vol_20 No&#xff0e;12 ElectronicDesignEngineering Jun&#xff0e;2012基于Opencv的运动 目标的检测和跟踪白瑞&#xff0e;姜明新(大连 民族学院信息与通信工程学院&#xff0c;辽宁 大连 116600)摘要 &#xff1a;检测运动物体需…

日照职业单招计算机专业,日照职业技术学院单招专业介绍-机电一体化技术

山东单招专业&#xff1a;日照职业技术学院2015年共有二十九个专业面向普高生和中专学生单招&#xff0c;其中机电一体化技术专业极受欢迎&#xff0c;每一年报考学生非常多&#xff0c;下面请看日照职业技术学院单招机电一体化技术专业介绍。机电一体化技术专业开设于2002年&a…

video-js RTMP直播

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

python实现监控增量_python 日志增量抓取实现方法

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

中央处理器属于计算机外部设备吗,不属于计算机外部设备的是

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。中央处理器和主存储器都不属于外部设备。外部设备指连在计算机主机以外的设备&#xff0c;它一般分为输入设备、输出设备和外存储器&#xff0c;外部设备是计算机系统中的重要组成部…

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

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

cesium 局部加载_Cesium自定义HTML弹窗

展示示例图&#xff1a;Cesium自定义HTML弹窗核心的实现思路部分&#xff1a;(1)cesium 的点击事件 Cesium.ScreenSpaceEventType.LEFT_CLICK 监听左键单击鼠标事件获取当前位置坐标&#xff0c;然后根据当前笛卡尔坐标去确认气泡窗口div的显示位置&#xff1b;(2)监听 cesium …

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; 凑数…

小学计算机集体备课,小学信息技术集体备课.doc

小学信息技术集体备课学信息技术集体备课( 信息技术)学科教案2014年 9月 日课题月亮的味道——插入图片集体备课曹婷付欢加孜拉教材版本人教版四年级(上册)课型新授课时1教学手段计算机教学教学目标 [知识与技能]学会在word中插入图片&#xff0c;设置图片大小以及环绕方式。[过…

浏览器不支持flash插件之后,h5播放rtmp直播流的解决方案

文章目录背景几种视频流比较http-flv搭配flv.js播放方案rtmp与http-flv地址格式flv.js延迟问题flv.js的并发直播在线测试地址&#xff1a;JavaCV转封装rtsp到rtmp&#xff08;无需转码&#xff0c;低资源消耗&#xff09; 海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(P…

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

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

计算机数学 考研真题及答案,北大计算机系考研历年高等数学真题附答案.docx

PAGEPAGE 10北大计算机考研 高等数学真题解答2008 年(5 题 60 分)1 (12 分) f (x) 有连续的二阶导数&#xff0c; f (a)  0 &#xff0c;求limxa1f (x  a)  f (a)1f (a) 。2 (12 分) f (x) 在a,b上连续且 f (a)  f (b)  0 &#xff0c; f (a) f (b) …