难度
初级
学习时间
30分钟
适合人群
零基础
开发语言
Java
开发环境
- JDK v11
- IntelliJ IDEA v2018.3
1.什么是流程控制语句?
第一句:
源文件中的语句通常按照它们出现的顺序从上到下执行。
什么是源文件?
在Java中,源文件就是Java类型的文件。
什么是语句?
以分号结尾的就是一条语句。上面有4条语句。
那什么又是“按顺序从上到下执行”?
我们来看一段示例代码:
这个程序输出的结果是:
输出的结果的顺序和它对应的输出语句顺序一致,也是从上到下,依次执行输出。
接着往下看下面一段话:
但是,流程控制语句通过使用决策,循环和分支来分解执行流程,使您的程序能够有条件地执行特定的代码块。
其中,我们的程序执行顺序是可以被控制的,也就是说原来显示输出的是“ABCD”,那么我可以让他只输出“AD”,怎么做到的呢,那就需要和流程控制语句的配合。流程控制语句有三类:
决策语句:if-then,if-then-else,switch
循环语句:for,while,do-while
分支语句:break,continue,return
接下来,本章讲解if-then-else。循环语句和分之语句在后续文章讲解。
2.if-else
那有没有就是说,如果满足条件执行语句1,不满足条件执行语句2的决策语句呢?答案是有的,下面我们就来介绍if-then-else。
if-then-else当if不满足条件时,则执行else语句块。
举一个生活中的例子:如果明天是晴天,那么我就去看逛街,否则我就去看电影。
简化一下,用“如果-那么-否则”。
再程序化一下,用“if-then-else”。
接下来,我们用代码来体现:
我们把“明天是晴天”变量名改为“weather”,晴天的话为true,否则为false:
我们简单翻译一下这段程序:
我们来运行这段程序:
3.if-else简写
if-else简写时,if语句只管紧跟自己的一条语句,同理,else语句也只管紧跟自己的一条语句。
举一个例子:如果明天是晴天,那么就去根据,否则就是看电影。
代码体现:
简写形式:
if-else简写形式就是将大括号去掉。
我们来测试if语句块和else语句块里面有多条语句时的情况:
运行结果:
唉,出错了,看下错误:
文字版:Error:(11, 9) java: 有 ‘if’, 但是没有 ‘else’。
啥叫“有if,但是没有else?”明明都有啊:
注意,我们前面早就说过,if和else都只管紧跟着自己的第一条语句,也就是如下:
那么也就是说if和紧跟它的第一条语句是一个整体,然后else和紧跟它的第一条语句是一个整体:
根据if-else简写形式,我们知道:
这样的写法才是对的,也就是if语句的后面确实要跟else,但是下面这段代码if语句后面跟的不是else语句,而是“System.out.println(“逛街”);”:
本来因为要跟的是else语句,现在却不是,所以出错了:Error:(11, 9) java: 有 ‘if’, 但是没有 ‘else’。
建议:请大家不要省略大括号。
4.if-else嵌套
首先我们来看if-else嵌套形式:
其中,省略号的意思是,还可以再继续嵌套下去。
注意:请尽量不要嵌套if-else。
举一个if-else嵌套的例子:抽奖活动,红色和蓝色卡片各一张,先抽卡片,然后再抽数字,数字只有1号和2号,中奖组合如下:
红色+1号对应奖品为笔记本;
红色+2号对应奖品为鼠标;
蓝色+1号对应奖品为手机;
蓝色+2号对应奖品为键盘。
于是,改写为如果-否则的形式:
因为只有红色和蓝色,所以你没抽到红色,那么就只剩下蓝色。好,接下来改写为if-else形式:
我们把里面的也改写一下:
把里面改成if-else的形式,因为你抽的不是1号就是2号,所以当你没有抽到1号的时候,剩下的只有2号:
最后,我们代码体现:
运行结果:
大家可以自己改改卡片颜色和数字序号来试试不同的结果。
5.if-else if
首先,我们来看if的英文翻译是“如果”,else 的英文翻译是“否则”,那么else if就是否则 如果:
当if语句条件不满足时,我们往下判断else if当条件表达式满不满足,如果满足则执行else if里面的语句;如果不满足则不执行。
举一个例子,抽奖,有红色、蓝色的卡片若干,抽中红色得笔记本,抽中蓝色得键盘。
改为如果 否则-如果形式:
改为if-else-if形式:
代码体现:
运行结果:
6.if else-if简写
if else-if简写形式:
同样的,if只管紧跟它后面的第一条语句;else if也只管紧跟它后面的第一条语句;
举一个例子,抽奖,有红色、蓝色的卡片若干,抽中红色得笔记本,抽中蓝色得键盘。
改为如果 否则-如果形式:
改为if-else-if形式:
代码体现:
简写形式:
运行结果:
建议:开发中最好不要省略大括号!
7.if else-if嵌套
if else-if嵌套形式:
其中,省略号代表还可以嵌套很多层。
注意:最好一层都不要嵌套,能不嵌套就不要嵌套!
来一个if else-if嵌套的例子:还是抽奖,红色卡片和蓝色卡片各一张,先抽卡片,卡片抽完了,再去抽数字,数字有1号和2号,中奖组合:
红色+1号对应奖品为笔记本;
红色+2号对应奖品为鼠标;
蓝色+1号对应奖品为手机;
蓝色+2号对应奖品为键盘。
用“if else-if”形式:
代码体现:
运行结果:
8.if else-if else
if else-if else表现形式:
当条件1满足时,执行语句块1;当条件2满足时,执行语句块2;否则,执行语句块3。
举一个生活中的例子,考试成绩在90分及以上的为A,80分及以上的为B,70分及以上的为C,低于70分为D:
if语句形式:
if else-if形式:
我们再用if else-if else形式:
代码体现:
运行结果:
9.if else-if else简写
if else-if if简写形式:
将上面分数例子的原程序通过if else-if else简写形式改造。
首先,我们先列出分数例子的源程序:
if else-if else简写:
运行结果:
建议:开发中最好不要省略大括号!
10.if else-if else嵌套
if else-if else嵌套形式:
大家看起来是不是感觉非常的混乱,更别提多层嵌套。
强烈建议:if else-if else嵌套开发中不允许使用!!!非常不利于团队开发。这种代码写出来是非常糟糕的。
if else-if else嵌套示例就不用列举了吧,简直没有阅读性。
11.列举常用的if语句形式
- if语句
- if else语句
- if else-if语句
- if else-if else语句
至此,Java中控制流程语句中的决策语句if-else相关内容讲解先告一段落,更多内容请持续关注。
附:流程控制语句表
答疑
如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。
上一章
下一章
“全栈2019”Java第二十三章:流程控制语句中决策语句switch上篇
学习小组
加入同步学习小组,共同交流与进步。
- 方式一:关注头条号gorhaf,私信“Java学习小组”。
- 方式二:关注公众号gorhaf,回复“Java学习小组”。
全栈工程师学习计划
关注我们,加入“全栈工程师学习计划”。
版权声明
原创不易,未经允许不得转载!