官术网_书友最值得收藏!

3.3 二路選擇結構:if...else語句

有時候要編寫這樣的代碼,如果一件事情發生就執行它,如果不發生就不執行。例如,如果你正在創建一個游戲,可能想要玩家在積滿20分或更多分時就能獲得一份獎賞;如果分數不夠,就不發生什么事情,并且游戲繼續。然而,如同滿足條件一樣,你也經常希望如果條件不滿足時也要發生一些事情。在例3.1中,如果錄入的溫度不小于32,就不做任何事情。在這種情況下,如果用戶重復地單擊按鈕并且每次錄入從不小于32,那么每次都不發生任何事情,這樣將導致用戶可能認為程序沒有正常工作。為了避免這種情況,你可以增加如果測試條件不滿足時要執行的else子句。這種選擇結構的一般形式如下:

注意,在if子句和else子句中的多條語句都要用花括號括起。例3.3把第二個選項加入例3.2的代碼中,顯示當溫度是32°或更高時要顯示的信息。

例3.3 使用if...else結構 這個例子顯示一組當溫度小于32°時要執行的語句和另一組當溫度等于或大于32°時要執行的語句。

在這個例子中,如果用戶錄入小于32的溫度,那么顯示將與例3.2相同。

但是,如果用戶錄入32或者任何更大的數字,顯示將會如下圖所示。

例3.4使用if...else結構,并且包括不管條件是否滿足最后都要執行的語句。

例3.4 額外加分 這個例子將顯示學生的考試成績。考試有21道題,基本分數基于前20道題,每答對一題給5分。最后一題是加分題,分值是6~10分。另一種加分方式是學生在考試時上交了與考試相關的學習指南,就加5分。首先,教師將會錄入學生的基本考試得分,然后錄入額外加分。程序將計算并且顯示學生的最后考試成績。

這個例子說明了以下幾件事情:

·第7和12行使用函數parseInt()保證將教師的錄入處理為數字。

·沒有使用花括號括起if子句和else子句中的語句,因為這兩個子句都只包含一條語句。可以添加花括號,但是這里不是必需的。

·因為每個子句只包含一條可執行語句,所以不管執行哪個子句,總是要執行第13和14行。

如果你錄入這些代碼,最初的頁面看起來像這樣:

如果一個學生得到基本考試分數的83%,并且從第21題獲得8分,那么輸出將會看起來像這樣:

如果一個學生得到基本考試分數的83%,沒有回答第21題,但提交了學習指南,那么輸出將會看起來像這樣:

如果一個學生得到基本考試分數的83%,沒有回答第21題,也沒有提交學習指南,那么輸出將會看起來像這樣:

然而,如果一個學生既回答了第21題又提交了學習指南,那會怎么樣呢?我們將在本章后面討論復合條件時處理這個問題。

3.3節檢查點

3.12 if和else子句什么時候需要花括號?

3.13 修改下列代碼片斷并且增加代碼,使得如果孩子太年輕而無法得到駕駛學習執照時,將顯示第二條信息。

3.14 編寫一個函數,讓用戶錄入兩個數,然后問用戶是否想要加或乘這兩個數。使用if...else結構加或乘這兩個數。如果用戶不想將這兩個數相加,程序將會將它們相乘。

3.15 為檢查點3.14的程序添加代碼,使用不在if...else結構中的一條語句顯示計算結果。再添加第二條語句,告知用戶這兩個數是什么以及是使用加運算還是乘運算(提示:使用第二種選擇結構)。

主站蜘蛛池模板: 北流市| 皮山县| 灯塔市| 宜昌市| 仁化县| 琼结县| 东源县| 招远市| 洪洞县| 舒兰市| 南京市| 南安市| 应用必备| 井研县| 福建省| 施秉县| 太康县| 墨脱县| 五家渠市| 即墨市| 尼木县| 南雄市| 重庆市| 鲁甸县| 柳林县| 米易县| 措勤县| 麻阳| 门源| 日喀则市| 盐源县| 监利县| 滨海县| 北宁市| 墨江| 松潘县| 涪陵区| 海宁市| 清水县| 贵港市| 庆云县|