国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

3.2 塊IF語句

極客小將2021-02-16-

upload/article/images/2021-02-16/09362ee567ebd06bc4db40b1e2c55246.jpg

塊IF語句比行IF語句功能更強(qiáng),適應(yīng)面更廣,它能夠通過IF—THEN—ELSE、IF—ELSE—END IF結(jié)構(gòu)實(shí)現(xiàn)任意多個(gè)分支,并從任意多個(gè)分支中選擇其中一個(gè)分支執(zhí)行。塊IF語句至少占用兩個(gè)語句行。

3.2.1 塊IF語句格式

當(dāng)THEN部分和ELSE部分包含比較多的內(nèi)容,需執(zhí)行多個(gè)語句時(shí),用行IF實(shí)現(xiàn)選擇結(jié)構(gòu),在一行內(nèi)就難以容納,而且程序讀起來也不清晰。QBASIC提供的“塊IF”結(jié)構(gòu),即是一將一個(gè)選擇結(jié)構(gòu)用若干個(gè)語句來實(shí)現(xiàn)。

塊IF的一般格式如下:

IF<條件>THEN

[<語句組1>]

ELSE

[<語句組2>]

END IF

關(guān)于塊 IF結(jié)構(gòu)的說明如下:

(1)執(zhí)行塊IF時(shí),先判斷所給的條件是否滿足:如求出邏輯表達(dá)式的值為真,條件滿足,則執(zhí)行語句組1,然后跳過ELSE行和語句組2,由END IF出口;如果邏輯表達(dá)式為假,條件不滿足,則跳過THEN部分,執(zhí)行ELSE部分的語句組2,然后由END IF出口。

(2)語句組1和語句組2可以包含多個(gè)語句行。

(3)ELSE部分是任選的,即此部分可有可無。例如:

IF a > 8 THEN

Print a

End if

就無ELSE部分,也是合法的。

(4)IF-THEN必須寫在一行上,THEN是該行的行尾,但是“語句組1”不能與IF- THEN寫在同一行上。如下面程序的寫法是錯(cuò)誤的:

IFa>8 THENPRINT a

ELSE

?? PRINT “a<=8”

END IF

QBASIC 把第一行認(rèn)為是一個(gè)完整的IF語句,不允許出現(xiàn)其它語句,如果像上面的書寫方法,QBASIC語言系統(tǒng)則判斷第一條語句為行IF語句,第二行的ELSE沒有相應(yīng)的IF與之配對(duì)而給出錯(cuò)誤信息。

(5)<語句組1>和<語句組2>可以缺省。例如:

IF b>0 THEN

ELSE

END IF

是合法語句,但無任何實(shí)際意義。

(6)ELSE和“語句組2”可以在一行上書寫。例如:

IF a>0 THEN

ELSE PRINT a

END IF

這樣書寫方法是合法的,但使用這種方法書寫,程序看起來不清晰,容易出現(xiàn)錯(cuò)誤,一般最好還是將ELSE獨(dú)占一行為好。

(7)塊IF結(jié)構(gòu)IF—END IF是一個(gè)選擇體,IF和END IF成對(duì)出現(xiàn)。<語句組1>或<語句組2>中都允許嵌套塊IF結(jié)構(gòu),當(dāng)出現(xiàn)嵌套層時(shí),可用向內(nèi)縮進(jìn)若干列的方法,形成鋸齒形排列的形式,以便于了解層次關(guān)系。

【例3.4】將任意3個(gè)整數(shù)按由大到小進(jìn)行排列。

解:設(shè)三個(gè)整數(shù)位a,b,c。第一先將a與b比較,a>b則a是大數(shù)不交換,ac則a是大數(shù)不交換,a< p="">

再將b與c比較,b>c則不交換,b< p="">

經(jīng)過比較由大到小的順序已排好。程序的NS圖如圖3.7所示。

upload/article/images/2021-02-16/4d3d581066534871366607d5fb2fc4fe.jpg

程序如下:

INPUT“a,b,c=”;a,b,c

IF b>a THEN

SWAP a,b

END IF

IF c>a THEN

SWAP a,c

END IF

IF c>b THEN

SWAP c,b

END IF

PRINT“a,b,c=”;a,b,c

END

程序運(yùn)行后,首先輸入a,b,c

a,b,c=?9,5,10

程序運(yùn)行結(jié)果為:

a,b,c=10? 9? 5

? 在程序中使用了兩變量的交換語句SWAP語句,使得程序減少了許多重復(fù)的賦值語句。

3.2.2 塊IF的嵌套及ELSE IF的使用

1、塊IF的嵌套

在塊IF語句中,每個(gè)語句允許組包含任何語句,當(dāng)然也可以包含塊IF語句。如果一個(gè)快IF語句完全包含在另一塊IF語句的一個(gè)語句組中,就稱為塊IF語句的嵌套。塊IF語句的嵌套可表示為如下的一般形式:

IF…THEN

?? IF…THEN

?? ELSE

??? :

?? END IF

ELSE

??? IF…THEN

???? :

??? ENDIF

END IF

【例3.5】編寫一個(gè)程序,使用戶能輸入月份,根據(jù)給出的年份和月份判斷該月有多少天。

INPUT ?“Enter year”;y

INPUT ?“Enter month(1-12)”;m

IF (m=4) OR (m=6)OR (m=9) OR (m=11) THEN

? day=30

ELSE

IF(m=1) OR (m=3) OR (m=5) OR (m=7) OR (m=8) OR (m=10) OR (m=12) THEN

? ????day=31

??? ELSE

IF(Y MOD 4=0 ?AND Y MOD100<>0)OR(Y MOD 4=0 ?AND Y MOD 400<>0)THEN

????? ?day=29

????? ?ELSE

????? ?day=28

????? ?END IF

??? END IF

END IF

PRINT “There are”;day;”daysin the month entered”

END

該程序根據(jù)輸入的年、月份求出該月的天數(shù)day,程序使用了塊IF的結(jié)構(gòu)嵌套。用戶使用嵌套方法時(shí)應(yīng)注意IF-END IF的配合出現(xiàn),假設(shè)不是成對(duì)出現(xiàn),系統(tǒng)將作出錯(cuò)誤處理。

2、塊IF語句中使用ELSE IF

使用 ELSE IF的塊IF結(jié)構(gòu)的一般格式為:

????? IF <</strong>條件1> THEN

??????? <</strong>語句組1>

????? ELSE IF<</strong>條件2> THEN

??????? <</strong>語句組2>

ELSE IF<</strong>條件3> THEN

??????? <</strong>語句組3>

ELSE IF<</strong>條件n> THEN

?? ?<</strong>語句組n>

ELSE

<</strong>語句組n+1>

END IF

當(dāng)條件1滿足執(zhí)行語句組1,若條件1不滿足而滿足條件2則執(zhí)行語句組2;若條件1和條件2都不滿足而滿足條件3,則執(zhí)行語句組3……若條件1到n都不滿足,則執(zhí)行語句組n+1.只要執(zhí)行完某一個(gè)語句組即跳到END IF退出塊IF結(jié)構(gòu)。

INPUT ?“Enter year”;y

INPUT ?“Enter month(1-12)”;m

IF (m=4) OR (m=6)OR (m=9) OR (m=11) THEN

? day=30

ELSE IF(m=1) OR (m=3)OR (m=5) OR (m=7) OR (m=8) OR (m=10) OR (m=12) THEN

? ????day=31

ELSE IF(Y MOD 4=0?AND Y MOD 100<>0)OR(Y MOD 4=0 ?AND Y MOD 400<>0)THEN

????? ?day=29

??? ELSE

????? ?day=28

END IF

PRINT “There are”;day;”daysin the month entered”

END

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 漯河市| 陇川县| 梨树县| 耒阳市| 穆棱市| 嘉荫县| 墨脱县| 开原市| 丹江口市| 舟曲县| 石景山区| 遵化市| 安西县| 屏东县| 祁连县| 昂仁县| 五指山市| 林甸县| 湄潭县| 北票市| 靖安县| 惠州市| 武山县| 德州市| 榆林市| 龙井市| 娄底市| 措美县| 墨竹工卡县| 涟水县| 邳州市| 安化县| 湖州市| 丹凤县| 新田县| 任丘市| 嘉峪关市| 湘乡市| 岢岚县| 通海县| 海兴县|