赋值和分支
赋值
赋值是各种编程语言中最常见的一种操作。那么什么是赋值呢?就是让一个变量的值变成我们想要的那个值。看看下面这个例子:
这里第 7 行就是赋值操作了。它做的就是让 b
的值变成 42
。所以这段程序实际上就是把输入加上 42 之后再输出出来。
你会发现赋值的写法并不复杂,只需要用一个等号 =
:等号左边可以放一个变量,右边可以放我们想要赋给这个变量的东西,最后再加上一个分号就可以了。实际上,等号右边可以是一个数、一个变量,甚至一个简单的式子。比如最初的加法计算程序可以写成这样:
与上次不同的是,我多定义了一个整数变量,它的名字叫做 c
。然后输入完 a
和 b
以后,执行这样的赋值操作:将 a + b
这个简单的式子的值赋给 c
。也就是说,从此开始 c
的值不再是 0
了,而是 a
和 b
的和。然后输出 c
,就能得到我们想要的结果。
赋值尽管长得像一个等式,但它并不是等式的含义。请看下面这个例子:
这个例子实际上和本节第一段代码是等价的。它接受一个整数输入,然后输出这个整数加上 42
的结果。这是因为,第 6 行的赋值是这样操作的:将 a + 42
这个简单的式子的结果作为变量 a
的新的值。因此尽管 a = a + 42
并不是一个数学上有意义的式子,但是是一个完全正确且将来经常会用到的一种赋值操作。
分支
现在还是加法程序,我想再加点花样。我想让两个数的和不超过 100;如果超过 100 的话就输出 100 。这件事情该怎么完成呢?
显然目前所学貌似很难实现这样的功能。因此我将介绍“分支”这个概念。废话不多说,上代码:
你会发现这段代码跟之前比多了 9 ~ 11 这三行。它是你从没有见过的,下面我来向你解释一下。 if
这个单词是“如果”的意思;后面小括号里面是一个数学上我们都见过的话,就是 c
大于 100
。那么这一行可以直接简单解释为“如果 c
大于 100
的话……”。接下来是一对大括号,大括号里面就是第 10 行,刚刚学过的,是一个赋值操作。那么整体就简单解释为“如果 c
大于 100
的话,那么就做这个赋值操作——把 c
的值变成 100
。
所以说,这就满足了我们的目标:如果 c
大于 100
,就让 c
变成 100
;否则就什么都不用做。这种操作就叫做分支。
总结下来,分支的写法长成这样:
if ( 条件 ) { 如果条件成立就做的一些事情 }
提示
本书中,蓝色字体是“占位符”,即表明这里应该放什么。——比如这里的“条件”二字指在括号里面应该放上分支的条件,而不是把“条件”两个字写在那里。
这里的 条件
可以是一个大于号 >
、小于号 <
、大于等于 >=
或者小于等于 <=
构成的式子,比如 a < 3
指变量 a
的值小于 3
, a >= b
指变量 a
的值需要大于或者等于变量 b
的值(简单说叫做“不小于”)。你可能还需要记住不等于写成 !=
,同时等于写成 ==
。比如 a != 3
表示变量 a
的值不为 3
。
注意
注意等于号 ==
与赋值的符号 =
的区别!
所谓 如果条件成立就做的一些事情
可以是任何我们学过的事情,比如输入输出、声明并定义变量,或者做赋值操作。所以看看这个例子——你能自己弄明白它想要表达的意思吗?试试看!
这段代码是说,输入两个数 a
和 b
,然后判断 a - b
这个式子的结果的正负。如果这个式子结果是个正数,那么就输出 a - b is positive!
;如果是个负数就输出 a - b is negative!
。……啊,我们好像忘记了是零的情况。因此我在这里介绍一下分支的“否则”。
注意这里在第一个分支的结尾多了一个 else
。它的意思就是我们平常说的“否则”,那么我相信你能够理解这段代码:“如果 a
大于 b
,那么输出 a - b is positive!
;否则(就是 a
不大于 b
,小于等于 b
)就输出 a - b is not positive!
。”你可以亲自试试这段代码,看看编译运行的效果如何。
练习
- 编写这样一个程序,输入两个整数,输出它们较大的那个。
- 一个学生是否及格是由他的成绩(保证是整数)决定的。如果成绩大于等于
60
,则这个学生是及格的,否则就是不及格的。请编写一个程序,输入一个成绩,输出这个学生是否及格——及格输出YES
,不及格输出NO
。 - 在上一题的基础上,现在有这样的新评分标准:如果学生的缺勤次数超过
3
次,则学生在原成绩的基础上扣掉5
分。现在编写一个程序,输入学生的原成绩和缺勤次数,输出这个学生是否及格。若及格,另起一行输出这个学生现在的成绩。