条件表达式
你喜欢运动吗?你想成为一名优秀的程序员吗?存在于生活中的很多类似的问题如果仅从字面回答都可以得到一个是/否、有/没有等类似的真或假的回答。对于程序世界也存在这样的对话,如,数值a小于数值b吗?当然,程序世界中的这种比较关系有确定的运算符号,被称为条件运算符。同引入+-*/符号一样,C语言引入了小于()、小于等于(=)比较运算符,以及不等于(!=)运算符。基于比较运算符构的表达式,称为条件表达式。它如同一个提问一样,可以产生一个真或假的结果值。
真假值
在C语言中,0值代表假,非0值代表真。随着语言的发展,引入了bool类型,定义在头文件 stdbool.h中。bool类型有两个值,true代表真值,false代表假值。这两者之间有等价关系,任何能转换为0值的表达式,其结果也是false,反之也成立产。
if语句
C语言提供了if语句,结合条件表达式,便可以用来创建程序分支结构。最简单的if语句形式如下:
这个语法的一个变形就是在条件表达式成立后执行多条语句,这时可以使用一对大括号{}将多个语句包装成一个语句块。
if-else语句
if语句更多的用途是提供分支结构,这是配合else子句来实现的。
当有多于2个可供选择的分支时,可以使用另一种变形形式if-elseif-else…,尽管这种情况下程序可以有很多分支,但一旦某条分支成立,就代表当前层的if-else语句块就结束了,退出到上层,最后直到整个if-else结构退出。
上面的代码根据玩家的等级,决定敌人飞行机器的速度。等级越高,敌人的速度越快。
完整示例
本节提供两个示例程序,一个是控制台程序,用于if语句的练习。别一个就是扩展我们的图形程序。
下载地址:http://www.glimix.com/tutorials/2018/glimix_c.rar
在先前的示例中,我们已经能够绘制出地面与飞机,但一切都是静止的,假定这是一个游戏,显得相当毫无生气。这次我们的扩展目标就是使用if语句让飞机飞起来,从屏幕右端飞行到左端,然后再巡航。