條件表達(dá)式
你喜歡運(yùn)動嗎?你想成為一名優(yōu)秀的程序員嗎?存在于生活中的很多類似的問題如果僅從字面回答都可以得到一個是/否、有/沒有等類似的真或假的回答。對于程序世界也存在這樣的對話,如,數(shù)值a小于數(shù)值b嗎?當(dāng)然,程序世界中的這種比較關(guān)系有確定的運(yùn)算符號,被稱為條件運(yùn)算符。同引入+-*/符號一樣,C語言引入了小于()、小于等于(=)比較運(yùn)算符,以及不等于(!=)運(yùn)算符?;诒容^運(yùn)算符構(gòu)的表達(dá)式,稱為條件表達(dá)式。它如同一個提問一樣,可以產(chǎn)生一個真或假的結(jié)果值。
真假值
在C語言中,0值代表假,非0值代表真。隨著語言的發(fā)展,引入了bool類型,定義在頭文件 stdbool.h中。bool類型有兩個值,true代表真值,false代表假值。這兩者之間有等價關(guān)系,任何能轉(zhuǎn)換為0值的表達(dá)式,其結(jié)果也是false,反之也成立產(chǎn)。
if語句
C語言提供了if語句,結(jié)合條件表達(dá)式,便可以用來創(chuàng)建程序分支結(jié)構(gòu)。最簡單的if語句形式如下:
這個語法的一個變形就是在條件表達(dá)式成立后執(zhí)行多條語句,這時可以使用一對大括號{}將多個語句包裝成一個語句塊。
if-else語句
if語句更多的用途是提供分支結(jié)構(gòu),這是配合else子句來實(shí)現(xiàn)的。
當(dāng)有多于2個可供選擇的分支時,可以使用另一種變形形式if-elseif-else…,盡管這種情況下程序可以有很多分支,但一旦某條分支成立,就代表當(dāng)前層的if-else語句塊就結(jié)束了,退出到上層,最后直到整個if-else結(jié)構(gòu)退出。
上面的代碼根據(jù)玩家的等級,決定敵人飛行機(jī)器的速度。等級越高,敵人的速度越快。
完整示例
本節(jié)提供兩個示例程序,一個是控制臺程序,用于if語句的練習(xí)。別一個就是擴(kuò)展我們的圖形程序。
下載地址:http://www.glimix.com/tutorials/2018/glimix_c.rar
在先前的示例中,我們已經(jīng)能夠繪制出地面與飛機(jī),但一切都是靜止的,假定這是一個游戲,顯得相當(dāng)毫無生氣。這次我們的擴(kuò)展目標(biāo)就是使用if語句讓飛機(jī)飛起來,從屏幕右端飛行到左端,然后再巡航。


