【正文】
擇結(jié)構(gòu)程序設(shè)計(jì) 17 Private Sub Command1_Click() C = 5 / 9 * (Val() 32) = Format(C, ) If C 40 Then = HOT ElseIf C 30 Then = WARM ElseIf C 20 Then = ROOM TEMPERATURE ElseIf C 10 Then = COOL ElseIf C 0 Then = COLD Else = FREEZING End If End Sub 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 18 4. 注意 1) ElseIf不能寫(xiě)成 Else If, 即中間不能有空格。 3) 兩種常見(jiàn)的簡(jiǎn)化形式 : 形式一: If 條件 Then 語(yǔ)句組 1 Else 語(yǔ)句組 2 End If 形式二: If 條件 Then 語(yǔ)句組 End If 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 15 【例 53】將例 52改成用塊結(jié)構(gòu)條件語(yǔ)句實(shí)現(xiàn)。 第一象限 X0,Y0 第二象限 X0,Y0 第三象限 X0,Y0 第四象限 X0,Y0 X Y 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 10 分析: 設(shè)分別用文本框 Text1和 Text2輸入 X和 Y值,如果該坐標(biāo)點(diǎn)在坐標(biāo)軸上,則給出提示并退出;如果該坐標(biāo)點(diǎn)不在坐標(biāo)軸上,再按 X、 Y的不同取值給出判斷結(jié)果。 程序段 1: X = Val() Y = Abs(X) If X 0 Then Y = Log(X) = Y 程序段 2: X = Val() Y = Log(X) If X = 0 Then Y = Abs(X) = Y 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 9 【例 52】平面直角坐標(biāo)系中,不同的象限內(nèi),點(diǎn)的坐標(biāo)的符號(hào)有以下 4種情況 : 任意輸入一對(duì)坐標(biāo)值,找出它所在的象限。 Y 若 X=2 則打印 Y=2 若 X=2 則打印 Y=6 共同出口 (6) 單行結(jié)構(gòu)條件語(yǔ)句可以嵌套 IF ... THEN...IF ... THEN ...ELSE ...ELSE… 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 6 【例 51】設(shè)界面如下圖所示,用文本框輸入 x的值,單擊“計(jì)算 Y”按鈕時(shí),根據(jù)以下公式計(jì)算 y的值。如果語(yǔ)句太長(zhǎng)需要換行,必須在折行處使用續(xù)行符號(hào) 。 T 語(yǔ)句組 1 條件 F 例 : If Xaaa Then Print X 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 5 (3) 語(yǔ)句組 語(yǔ)句組 2: 可以有多條語(yǔ)句,各語(yǔ)句之間用冒號(hào)隔開(kāi)。本章將介紹解決此類(lèi)問(wèn)題的四種語(yǔ)句結(jié)構(gòu)。第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 1 第 5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 本章要點(diǎn) : 條件語(yǔ)句 ?單行結(jié)構(gòu)條件語(yǔ)句 If...Then...Else ... ?塊結(jié)構(gòu)條件語(yǔ)句 If...Then…EndIf ?多分支選擇語(yǔ)句 Select Case...End Select ?多分支選擇轉(zhuǎn)移語(yǔ)句 On…GoTo 特點(diǎn) : 根據(jù)條件是否成立,決定程序的執(zhí)行分支 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 2 引言 順序結(jié)構(gòu)程序的執(zhí)行次序是按語(yǔ)句的先后排列次序依次執(zhí)行的,然而,計(jì)算機(jī)在處理實(shí)際問(wèn)題時(shí),往往需要根據(jù)條件是否成立,決定程序的執(zhí)行方向,在不同的條件下,進(jìn)行不同的處理。假如遇到這樣一個(gè)問(wèn)題: Y= |x| x≤0 lnx x0 在輸入變量 x的值之后,需根據(jù) x的不同取值范圍做不同的處理,使用順序結(jié)構(gòu)的程序無(wú)法解決這一問(wèn)題的。 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 3 單行結(jié)構(gòu)條件語(yǔ)句 1. 格式 If 條件 Then [語(yǔ)句組 1] [Else 語(yǔ)句組 2] 2. 功能 如果 條件 成立,則執(zhí)行 語(yǔ)句組 1 否則執(zhí)行 語(yǔ)句組 2 T 語(yǔ)句組 1 條件 語(yǔ)句組 2 F 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 4 3. 說(shuō)明 (1) 條件 可以是: ? 關(guān)系表達(dá)式 ? 布爾表達(dá)式 ? 數(shù)值表達(dá)式: 0為 False; 非 0為 True ? 字符串表達(dá)式: 0為 False; 非 0為 True (2) 可以沒(méi)有 Else部分,這時(shí)必須有 語(yǔ)句組 1。 例 : If N0 Then A=A+B:B=B+A Else A=AB:B=BA (4) 應(yīng)作為一條語(yǔ)句書(shū)寫(xiě)。 (5) 無(wú)論條件是否成立,都具有共同出口 例 : If X = 0 Then X = 1 + X Else X = 5 X Y = 1 X Print Y=。 |x| x≤0 lnx x0 y= Command1 Text1 Label3 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 7 分析: 本例需要輸入x, 根據(jù) x的值決定 y的值,然后輸出 y的值,該計(jì)算過(guò)程可以用流程圖表示: lnx?y T |x|?y x≤0 F 輸入 x的值 輸出 y的值 Private Sub Command1_Click() X = Val() If X = 0 Then Y = Abs(X) Else Y = Log(X) = Y End Sub 代碼如下: 第五章 選擇結(jié)構(gòu)程序設(shè)計(jì) 8 思考: 比較以下兩段程序,是否都能夠?qū)崿F(xiàn)上例的功能。如果X=0或 Y=0則給出提示“該點(diǎn)不在任何象限內(nèi)”。具體過(guò)程用流程圖表示如下 : T T F X或 Y為 0 X0 F Y0 F 輸入 X,Y的值 輸出:該點(diǎn) 不在任何象限 Y0 T 輸出: 在第一象限 輸出: 在第四象限 輸出: 在第二象限 輸出: 在第三象限 F T 第五章 選擇結(jié)構(gòu)程序設(shè)