While在Do后面與在Loop后面的不同:前者先判斷,成立就執(zhí)行,后者是先執(zhí)行,后判斷條件是否滿足,繼續(xù)執(zhí)行循環(huán)。即使開始條件為假,后者也會(huì)執(zhí)行1次。
對(duì)于Until同樣如此分析。
注:對(duì)于Until,條件表達(dá)式為假時(shí)執(zhí)行循環(huán),為真就退出循環(huán)。
For…Next
注意:判斷For循環(huán)執(zhí)行與否的條件(P109)。
例題:
因?yàn)檫@個(gè)for循環(huán)步長(zhǎng)step=1(默認(rèn))>0,所以當(dāng)循環(huán)變量i<=終值時(shí),循環(huán)可以進(jìn)行。具體來看看執(zhí)行情況。因此,經(jīng)過分析,我們知道這個(gè)循環(huán)執(zhí)行了5次,直到循環(huán)變量i>4終止循環(huán)。輸出sum。這個(gè)程序的功能就是求出了從0—4的所有整數(shù)的和! (duì)于所有循環(huán)我們都可以列一個(gè)表來分析:(如下)
循環(huán)次數(shù) |
循環(huán)變量i |
sum的值 |
1 |
0 |
0 |
2 |
1 |
1 |
3 |
2 |
3 |
4 |
3 |
6 |
5 |
4 |
10 |
4、 過程調(diào)用和參數(shù)傳遞
〈1〉 過程調(diào)用
子過程調(diào)用的兩種方式:
Call 子過程名([<參數(shù)>])或?qū)all省略
函數(shù)子過程調(diào)用:函數(shù)過程名([<參數(shù)>])
〈2〉 參數(shù)傳遞
在函數(shù)或者子過程定義時(shí),如果使用ByRef關(guān)鍵字,則說明參數(shù)是傳址傳遞,這時(shí)形參的變化會(huì)影響到相應(yīng)的實(shí)參,也就是說參數(shù)的變化是雙向的;
如果使用ByVal關(guān)鍵字,則說明參數(shù)是傳值傳遞,這時(shí)形參的變化不會(huì)影響到相應(yīng)的實(shí)參,也就是說參數(shù)的變化是單向的;
默認(rèn)情況下,參數(shù)是傳址傳遞的,也就是說參數(shù)的變化是雙向的。
例題:
在窗體中添加一個(gè)名稱為Command1的命令按鈕,然后編寫如下事件代碼:
問:窗體打開運(yùn)行后,單擊命令按鈕,則消息框的輸出結(jié)果為___.(2008-9)
分析:
這里關(guān)鍵是在定義過程p時(shí),定義參數(shù)的方式:因?yàn)槟J(rèn)是傳址傳遞,ByVal關(guān)鍵字表明是傳值傳遞,則說明第一個(gè)參數(shù)n是傳址傳遞,m是傳值傳遞。
那么,x=12傳遞給n后,n=n Mod 10為2,會(huì)使得x也變?yōu)?;
而對(duì)于m是傳值傳遞,所以無論如何變化都不會(huì)影響y。
所以調(diào)用過程p后,x=2,y=32
答案應(yīng)該為64.
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |