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

極客小將

您現在的位置是:首頁 » scratch編程資訊

資訊內容

3.2 塊IF語句

極客小將2021-02-16-

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

塊IF語句比行IF語句功能更強,適應面更廣,它能夠通過IF—THEN—ELSE、IF—ELSE—END IF結構實現任意多個分支,并從任意多個分支中選擇其中一個分支執行。塊IF語句至少占用兩個語句行。

3.2.1 塊IF語句格式

當THEN部分和ELSE部分包含比較多的內容,需執行多個語句時,用行IF實現選擇結構,在一行內就難以容納,而且程序讀起來也不清晰。QBASIC提供的“塊IF”結構,即是一將一個選擇結構用若干個語句來實現。

塊IF的一般格式如下:

IF<條件>THEN

[<語句組1>]

ELSE

[<語句組2>]

END IF

關于塊 IF結構的說明如下:

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

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

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

IF a > 8 THEN

Print a

End if

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

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

IFa>8 THENPRINT a

ELSE

?? PRINT “a<=8”

END IF

QBASIC 把第一行認為是一個完整的IF語句,不允許出現其它語句,如果像上面的書寫方法,QBASIC語言系統則判斷第一條語句為行IF語句,第二行的ELSE沒有相應的IF與之配對而給出錯誤信息。

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

IF b>0 THEN

ELSE

END IF

是合法語句,但無任何實際意義。

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

IF a>0 THEN

ELSE PRINT a

END IF

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

(7)塊IF結構IF—END IF是一個選擇體,IF和END IF成對出現。<語句組1>或<語句組2>中都允許嵌套塊IF結構,當出現嵌套層時,可用向內縮進若干列的方法,形成鋸齒形排列的形式,以便于了解層次關系。

【例3.4】將任意3個整數按由大到小進行排列。

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

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

經過比較由大到小的順序已排好。程序的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

程序運行后,首先輸入a,b,c

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

程序運行結果為:

a,b,c=10? 9? 5

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

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

1、塊IF的嵌套

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

IF…THEN

?? IF…THEN

?? ELSE

??? :

?? END IF

ELSE

??? IF…THEN

???? :

??? ENDIF

END IF

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

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

該程序根據輸入的年、月份求出該月的天數day,程序使用了塊IF的結構嵌套。用戶使用嵌套方法時應注意IF-END IF的配合出現,假設不是成對出現,系統將作出錯誤處理。

2、塊IF語句中使用ELSE IF

使用 ELSE IF的塊IF結構的一般格式為:

????? 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

當條件1滿足執行語句組1,若條件1不滿足而滿足條件2則執行語句組2;若條件1和條件2都不滿足而滿足條件3,則執行語句組3……若條件1到n都不滿足,則執行語句組n+1.只要執行完某一個語句組即跳到END IF退出塊IF結構。

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

聲明:本文章由網友投稿作為教育分享用途,如有侵權原作者可通過郵件及時和我們聯系刪除

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 普洱| 全椒县| 阿拉尔市| 白山市| 蒲城县| 长白| 巨野县| 三台县| 夏河县| 襄樊市| 龙州县| 萍乡市| 恩平市| 惠东县| 明溪县| 苏州市| 新巴尔虎左旗| 斗六市| 钟祥市| 都匀市| 溧水县| 湘潭市| 凤翔县| 昌平区| 南汇区| 昌黎县| 唐山市| 柳林县| 车致| 锡林浩特市| 福建省| 鄂温| 岳阳市| 兴化市| 泸州市| 栖霞市| 图木舒克市| 莒南县| 寿阳县| 灵璧县| 繁峙县|