93 
第5章 if判断
5.1 if 语句
老师,我有一个问题。
同学,有什么问题?
在前面的关卡中,有些关卡中部分开关已经打开了。
是的。
我看到图片中开关是亮的,所以我没有再次打开,
如果我无法判断开关是否是打开状态,那怎么办呢?如
果已经是打开状态,再执行打开,就会关闭。
能够提出这个问题,说明同学认真学习和思考了,
在编程中经常会遇到类似的问题,要先判断,然后才能
决定是否执行。
是的,老师。我就不知道如何判断选择。
好的,现在就给大家介绍一个新知识:if 判断。
if 判断就像在衣柜中选衣服。衣柜中有很多漂亮的衣服,有短袖T 恤、长袖
T 恤、外套,也有羽绒服,大家怎么选择呢?首先,大家要根据天气环境来选择,
如果现在是春天,那就选择长袖T 恤;如果现在是夏天,那就选择短袖;如果现
Ddnzw1.indd 93 2021.9.13 10:23:12 AM 

呆呆鸟儿童编程在游戏中学习
在是秋天,那就选择穿上外套;如果现在是冬天,就要选择穿上羽绒服,这就是
选择判断。

下面用一个例子讲解如何使用if 判断,如图5.1 所示。


图5.1 if 判断场景

这个场景中主角前方有1 个开关,开关可能是“关闭”状态,也可能是“打开”
状态。也就是说,只能在程序运行过程中才能确定开关的状态。

如果不对开关状态进行判定就执行开关切换命令toggle() ,就可能将已经打
开的开关关上。因此,决定是否执行toggle() 命令,就需要先使用if 判断语句来
判定开关的状态。


if 判断语法:
if(布尔条件表达式){ 
执行的命令
} 
if 是判断语句的标识,后面的小括号中是表示判定条件的布尔条件表达式,
满足条件执行的代码放在大括号中。

94 

Ddnzw1.indd 94 


2021.9.13 10:23:13 AM 


第5章 if判断
如果小括号中的布尔表达式成立,就会执行大括号中的代码;反之,如果小
括号中的布尔表达式不成立,则不会运行大括号中的代码。这样,if 判断就可以
根据具体情况来确定需要执行的代码。

在介绍完if 判断语句的语法后,这里给出判断开关状态并执行toggle() 命令
的代码。

代码
if (isOnCloseSwitch) { 
toggle(); 

} 


isOnCloseSwitch 是布尔表达式。布尔表达式只有两个结果:真(true )和假
(false)。当结果是“真”则说明条件成立,当结果是“假”则说明条件不成立。

以isOnCloseSwitch 为例,这是一个系统提供的布尔变量,表示主角是否站

在一个处于关闭状态的开关上。如果isOnCloseSwitch 的值是true (真),表示主

角站在关闭状态的开关上;如果值是false (假),表示主角没有站在处于关闭状

态的开关上。


5.2 else if 语句
if 判断语句是对一种条件的判断,如果要判断第二种条件,就要使用else if 
语句。这里先给出一个else if 语句的适用场景,如图5.2 所示。

在这个场景中,主角前方的砖块上有1 个物品,可能是开关,也可能是南瓜。
如果是这样,不仅要检测开关状态,还要检测是否是南瓜。因此单一的if 判断无
法满足此场景,增加else if 语句则可以满足场景物品判断的要求。

95


Ddnzw1.indd 95 


2021.9.13 10:23:13 AM 


呆呆鸟儿童编程在游戏中学习
图5.2 else if 语句场景


if-else if 语法: 
if(布尔条件表达式1){ 
执行命令1 
}else if(布尔条件表达式2){ 
执行命令2 
} 
else if 语句不能单独使用,需要先使用if 语句进行第一个条件的判断,再使
用else if 语句对另一个条件进行判断。else if 的语法格式与if 相似,在小括号中
的是布尔条件表达式,需要执行的特定代码放在大括号中。

“伪代码”就是用熟悉的语言编写类似代码的内容,用来快速
描述编程的思路。伪代码并不能运行,需要转化成计算机能够执行
的代码程序。
知识小课堂
96


Ddnzw1.indd 96 


2021.9.13 10:23:14 AM 


第5章 if判断
if ( 是关闭的开关){ 
打开开关
}else if ( 是南瓜) { 
收集南瓜
} 
伪代码
这里的“伪代码”描述场景中南瓜和开关的条件判断过程。首先判断是否是
关闭状态的开关,如果是就打开开关;如果不是,再判断是否是南瓜,如果是南瓜,
就收集南瓜。

有了伪代码,如何将伪代码转换为可以运行的代码,
这
个需要大家动脑筋思考一下
。



将伪代码转换为可以运行代码的过程,一般是保持代码的基本结构不变,将
自然语言描述的部分替换成程序命令就可以了。

代码
if (isOnCloseSwitch) { 
toggle(); 
}else if (isOnReward){ 
take(); 
} 


这就是将示例场景的伪代码转换为可以运行的代码。

其中,isOnCloseSwitch 在5.1 节已经介绍过,表示主角是否站在一个处于关
闭状态的开关上。

isOnReward 表示主角是否站在一个有南瓜的砖块上。单词Reward 意思是奖
励,这里用来指代关卡中需要收集的南瓜。

97


Ddnzw1.indd 97 


2021.9.13 10:23:14 AM 


呆呆鸟儿童编程在游戏中学习
5.3 else 语句
if 和else if 语句可以对多种条件进行判断,对于其余没有指定的条件判断,
就要使用else 语句。这里先给出一个else 语句的适用场景,如图5.3 所示。


图5.3 else 语句场景

主角前方可能有一个南瓜,也可能什么都没有。主角向前移动1 格,如果站
在有南瓜的砖块上,就收集南瓜,否则就再前进1 格。

根据前面学过的if 语句,可以很容易地写出第一个条件的判断,但如果不
符合第一个条件,剩下的所有情况都要前进1 格。这样的情况适合使用else 语句,
表示在if 语句描述条件都不符合的情况下,运行else 中的代码。


98 
if-else 语法:
if(布尔条件表达式1){ 
执行命令1 
}else if(布尔条件表达式2){ 
执行命令2 
}else{ 
执行命令3 
} 
Ddnzw1.indd 98 


2021.9.13 10:23:15 AM 


第5章 if判断
else 语句也不能单独使用,需要与if 语句一起使用。else 语句放在if 语句和
else if 语句的最后,表示所有不符合之前条件判断的情况。

在if-else 语法中,如果不满足“布尔条件表达式1”,也不满足“布尔条件
表达式2”,此时则会执行else 大括号中的“执行命令3”。

在示例场景中,前进1 格后判断是否有南瓜,有则收集南瓜,没有则再前进
一格。使用if 语句和else 语句写出的代码如下:

代码
给大家看一段更加复杂的代码,里面包含了if 语句、
else if 语句和else 语句,大家能不能读懂其中的内容?
代码
move(); 
if (isOnReward){ 
take(); 
}else{ 
move(); 
} 

if (isOnReward){ 
take(); 
}else if (isOnCloseSwitch){ 
toggle(); 
}else{ 
move(); 
} 

上面这段代码的意思是:如果有南瓜就收集南瓜;如果有关闭的开关,就打
开开关;条件都不符合,就向前前进一步。

99 

Ddnzw1.indd 99 2021.9.13 10:23:16 AM 



呆呆鸟儿童编程在游戏中学习
if 、else if 和else 在实际编程中需要组合
使用,主要的组合模式有如下4 种。

模式1:

模式2:

if ( 条件A) { if ( 条件A) { 
代码1 

代码1 
} 

}else if( 条件B){ 
代码2 

}else if ( 条件C){ 
代码3 

} 

模式3:

模式4:

if ( 条件A) { if ( 条件A) { 
代码1 

代码1 
}else if ( 条件B){ 

}else{
代码
2


代码2 
}else{ 

} 
代码3 
} 

模式1:适用于判断如果满足条件A,就执行特定代码1。

模式2:适用于判断分别满足条件A、B、C 时,分别执行代码1、代码2、
代码3。

模式3:适用于判断分别满足条件A、B 时执行特定代码1 和代码2,其余
情况执行代码3。

模式4:适用于判断如果满足条件A 则执行特定代码1,其余情况执行代
码2。

在条件判断中,if 和else 只能出现一次,else 表示所有之前没有描述过的情
况;而else if 则可以出现多次,每出现一次表示判断一种条件。

100 

Ddnzw1.indd 100 


2021.9.13 10:23:16 AM 


第5章 if判断
5.4 流程图
流程图是一种图形化的描述方法,是为了获得问题的解决方案而需执行的命
令组合和操作顺序。由于流程图的直观性,可以很方便地表达复杂的算法和过程,
这有利于快速理解算法和命令流程。

图5.4 所示是一个修理电灯的流程图。流程图有“开始”和“结束”,中间
包括很多步骤和描述,例如“电灯不工作了”“维修电灯”“插电源”“换灯泡”
; 
还包括一些判断的内容,例如“灯泡坏了吗?”和“电源插好了吗?”。

图5.4 修理电灯的流程图
流程图是有规范的,常用的符号如图5.5 所示。
101


Ddnzw1.indd 101 


2021.9.13 10:23:21 AM 


呆呆鸟儿童编程在游戏中学习
图5.5 流程图常用符号

5.5 关卡案例
老师,if 判断的4 种模式我已经了解。
很好,这4 种模式是最基本的模式。


我对这些if 判断模式的使用还不熟练。


没关系,大家可以通过关卡练习,更好地掌握if 判

断。


哦,那我还要多加练习。

102 

Ddnzw1.indd 102 


2021.9.13 10:23:26 AM