赋值和分支
赋值
赋值是各种编程语言中最常见的一种操作。那么什么是赋值呢?就是让一个变量的值变成我们想要的那个值。看看下面这个例子:
这里第 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分。现在编写一个程序,输入学生的原成绩和缺勤次数,输出这个学生是否及格。若及格,另起一行输出这个学生现在的成绩。