If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

用if,else和布尔的条件语句

作为人类,我们每天都在作出决定,比如午餐的选择以及出门要不要穿雨衣。当我们做决定时,我们考虑的是外部世界的很多条件。比如做午饭时需要考虑冰箱里还有什么,穿不穿雨衣需要考虑外面天气如何。
计算机程序同样也做决定,它考虑的是条件语句(if/else)和布尔表达式的值(true/false)。正是由于有了条件语句,程序才能根据不同输入和不同参数做出不同反应。

一个简单的条件语句

比如现在我们要写一个程序,来帮我们决定每天出门穿什么。这个程序需要考虑很多条件,我们先从简单的开始:如果温度是零度或零下(小于等于华氏32度),程序应该提示我们要穿羽绒服。
用流程图来表示这个逻辑:
流程图开头是一个菱形,写着“温度是否等于或小于零度(华氏32度)?”。菱形连接着一个标记着 "TRUE" 的箭头,指向一个矩形,写着“显示:穿上羽绒服!”
我们可以使用 JavaScript 语言中的 if 语句 来实现这个流程:
if (temperature < 32) {
  println("穿上羽绒服!");
}
我们来分析这个语法。if 语句的一般结构是这样的:
if (<条件>) {
  <执行操作>
}
条件与执行操作之间是不同的,这正是产生奇迹的地方。
条件是一个 布尔表达式:只能取值 truefalse 的表达式。 在编程语言中,布尔类型是另一种数据类型,只能取值真或假(true 或 false)。
例如,我们可以将布尔表达式的结果储存在一个变量中:
var belowFreezing = temperature < 32;
根据变量 temperature 的值不同,变量 belowFreezing 将储存 truefalse 作为其值。
我们甚至可以用这个变量来代替上面的条件:
var belowFreezing = temperature < 32;
if (belowFreezing) {
  println("穿上羽绒服!");
}
无论我们怎么写这个程序,条件部分的取值必须是 true 或者 false,因为这部分要告诉计算机是否执行大括号内的操作。
要执行的操作可以是你的程序能做到的 任何事,由你来决定。
✏️ 试试更改下面程序中的 temperature 的值,看看会发生什么。你也可以更改条件或者要执行的操作。
📝 查看不同语言下的类似程序: App Lab | Snap | Python
注:通常来说,这样的程序应该是从传感器或者别的输入设备读取 temperature 的值,但为简单起见,这里我们用硬编码直接赋值。

比较运算符

我们上面的布尔表达式使用了比较运算符 <= 来判断一个数是否小于或等于另一个数。在编程语言中还有很多比较运算符,可以用来判断数值之间的不同关系。
下表是 JavaScript 语言中的一些比较运算符:
运算符意义举例一些为真的表达式
>大于60 > 32
>=大于等于60 >= 3232 >= 32
<小于20 < 32
<=小于等于20 <= 3232 <= 32
===严格等于32 === 32
==等于32 == 32"32" == 32
!==严格不等于30 !== 32"32" !== 32
!=不等于30 != 32
JavaScript 语言的这部分有些难度,它即有等于运算符,又有“严格等于”运算符。
等于运算符首先会将两边的表达式强行转化为相同的类型(如将两边都转化为数值),然后 再进行比较。而若是严格等于运算符,一发现两边是不同类型,马上就判断为不相等。建议大家使用严格等于运算符,因为这样的代码有更强的可读性。
大多数编程语言中没有同时包含这两种不同的等于运算符,但是在其他语言中判断两个值是否相等时,你也许会遇到另外的差异。
✏️ 下面的程序基于变量 yourAge 不同的值,显示不同的信息。更改变量的赋值,看看显示的信息有什么不同。你也可以在程序中添加更多的 if 语句。
📝 查看不同语言下的类似程序: App Lab | Snap | Python

else 语句

有了 if 语句,我们的程序只有当条件为真的情况下会执行一系列操作。如果我们想要程序在条件为假的情况下执行 另外不同的 一系列操作,那么我们可以使用 else 语句
比如一个超级简单的密码检查程序。流程图类似下面这样:
流程图最开始是一个菱形,写着“这个密码等于 TOPSECRET 吗?”。标记着“TRUE”的第一个箭头从菱形指向一个矩形,矩形中写着“显示:’You got it!‘”;标记着“FALSE”的第二个箭头指向另一个矩形,矩形中写着“显示:’Try again!‘”。
我们可以用一个 if 语句加一个 else 语句来写这个程序:
if (password === "TOPSECRET") {
   println("You got it!");
} else {
   println("Try again!");
}
📝 查看不同语言下的类似程序: App Lab | Snap | Python
我们的程序始终确保两条路径二选一:要么条件为真,走第一条路;要么条件为假,走第二条路。
✏️ 下面的程序是之前那个年龄检查程序的改进版本,到处都添加了 else 语句。现在你可以很容易的知道在某个年龄你 做什么、不能 做什么。 把变量 yourAge 的值改一改,看看输出有什么不同。
📝 查看不同语言下的类似程序: App Lab | Snap | Python

伪代码中的条件语句

如下伪代码表示一个单一的 if 语句:
IF (<condition>)
{
     <instructions>
} 
如下伪代码增加了一个 else 语句,以及第二套操作指令。
IF (<condition>)
{
     <instructions 1>
} 
ELSE 
{
     <instructions 2>
}
下表是伪代码中的比较运算符:
运算符意义
a = b等于
a ≠ b不等于
a > b大于
a < b小于
a ≥ b大于等于
a ≤ b小于等于
下面是密码检查程序的伪代码:
IF (password = "TOPSECRET")
{
   DISPLAY("You got it!")
}
ELSE {
   DISPLAY("Try again!");
}

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.