——For……Next循環(huán)控制結(jié)構(gòu)"/>
999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

循序漸進(jìn)學(xué)編程
——For……Next循環(huán)控制結(jié)構(gòu)

2018-02-17 17:36:40
信息記錄材料 2018年10期

劉 偉

(江蘇師范大學(xué)科文學(xué)院 江蘇 徐州 221116)

Visual Basic程序設(shè)計語言提供了三種循環(huán)控制結(jié)構(gòu),F(xiàn)or……Next、While……Wend和Do……Loop,分別用于解決不同特征的循環(huán)處理問題。今天我們主要討論For……Next循環(huán)控制結(jié)構(gòu)。

首先,我們需要理解什么叫循環(huán)?比如一個學(xué)生在操場上圍著跑道一圈一圈的跑步,這個跑步的動作就是循環(huán)!一個人在食堂里一口一口的吃飯,吃飯的動作也是循環(huán);一個學(xué)生靜靜的坐在教室里聽課,這個聽課的動作也是循環(huán),……等等,現(xiàn)實生活中處處都是循環(huán)!所以,在計算機(jī)世界里,計算機(jī)重復(fù)執(zhí)行的動作就被稱為循環(huán)。

其次,我們得搞清楚循環(huán)能解決什么樣的問題?比如,求5個數(shù)的和,我們可以用如下方式獲得5個數(shù),然后求它們的和:

Private Sub Form_Click()

Dim A As Integer, B As Integer, C As Integer

Dim D As Integer, E As Integer, Sum As Integer

A = InputBox("請輸入第1個數(shù)")

B = InputBox("請輸入第2個數(shù)")

C = InputBox("請輸入第3個數(shù)")

D = InputBox("請輸入第4個數(shù)")

E = InputBox("請輸入第5個數(shù)")

Sum = A + B + C + D + E

Print Sum

End Sub

本程序中引入A、B、C、D、E 五個變量來保存輸入的5個值,然后通過語句Sum = A + B + C + D + E求得這5個數(shù)據(jù)的和,是沒有問題的,可是請大家想一想,如果求50個數(shù)據(jù)的和用這種方式行不行呢,求5000個甚至5萬個數(shù)據(jù)的和還能用這樣的程序嗎?

所以,在計算機(jī)中,重復(fù)的或者是相似的操作都可以借助循環(huán)來實現(xiàn)!上面的程序中數(shù)據(jù)的輸入可以轉(zhuǎn)換成類似于:X = InputBox("請輸入第i個數(shù)")的形式,Sum= A + B + C + D + E可以轉(zhuǎn)換成Sum = Sum + X 的累加形式。

其次,我們需要考慮的問題是循環(huán)何時結(jié)束?比如在操場上跑步,可以有多種結(jié)束形式:

1)固定跑5圈,跑完5圈就結(jié)束;

2)不確定跑多少圈,跑到累了就結(jié)束;

3)跑完5000米就結(jié)束;

4)跑到天亮就結(jié)束;

……

由此我們可以得出,有的循環(huán)有固定的次數(shù),有的循環(huán)雖然沒有固定的次數(shù),但是有明確的結(jié)束條件。而For……Next循環(huán)控制語句主要就是用于解決有固定循環(huán)次數(shù)的循環(huán)問題。其基本結(jié)構(gòu)如下:

For 循環(huán)控制變量 = 初值 To 終值 [Step 步長]

語句組1

[Exit For]

語句組2

Next [循環(huán)控制變量]

幾點說明:

加粗標(biāo)注的部分是必不可少的控制語句,[]內(nèi)的內(nèi)容是可以省略的內(nèi)容;

循環(huán)控制變量是某一合法的變量名;

初值 To 終值 用來決定循環(huán)控制變量的取值范圍;

若Step 步長 省略,則默認(rèn)的步長為1;

Exit For語句用于實現(xiàn)當(dāng)滿足一定條件時,提前退出當(dāng)前For循環(huán),執(zhí)行Next之后的代碼;

For和Next之間的代碼叫循環(huán)體。

比如,用For……Next 循環(huán)結(jié)構(gòu)輸出1、2、3、……、10這10個數(shù),程序如下:

Private Sub Form_Click()

Dim i As Integer

For i = 1 To 10 Step 1

Print i;

Next i

End Sub

1.當(dāng)程序執(zhí)行到For語句時,計算出初值、終值和步長,并且將初值賦值給循環(huán)控制變量。

2.判斷循環(huán)控制變量的值有沒有超過終值,如果沒有超過終值就進(jìn)入循環(huán)體執(zhí)行,否則退出循環(huán)體,執(zhí)行Next語句之后的代碼。

3.當(dāng)執(zhí)行到Next語句的時候系統(tǒng)做如下工作:首先循環(huán)控制變量增加一個步長,然后轉(zhuǎn)到第2步。

下面我們試著用For……Next循環(huán)結(jié)構(gòu)輸入5個數(shù):

Private Sub Form_Click()

Dim i As Integer

For i = 1 To 5

x = InputBox("請輸入一個數(shù)")

Print x;

Next i

End Sub

如果是輸入5個數(shù),輸出這5個數(shù)的和呢?

首先介紹一條賦值語句: Sum = Sum + X

請大家回顧一下賦值的執(zhí)行流程:先計算”=”右邊表達(dá)式的值,然后賦給左邊的變量。所以這條語句的功能是先計算Sum+X的值,結(jié)果放在Sum中,這條語句執(zhí)行以后,Sum的新值比原值增加X,如果執(zhí)行多次,就能實現(xiàn)累加的功能。

所以輸入5個數(shù),并輸出這5個數(shù)的和的程序修改如下:

Private Sub Form_Click()

Dim i As Integer, x As Integer

Sum = 0 ‘Sum 的初始值為0

For i = 1 To 5

x = InputBox("請輸入一個數(shù)")

Print x;

Sum = Sum + x ‘累加求和

Next i

Print

Print "這些數(shù)的和="; Sum

End Sub

為了在輸入的過程中能夠清晰的知道當(dāng)前輸入的是第幾個數(shù),x = InputBox("請輸入一個數(shù)")可以修改為:x = InputBox("請輸入第" & i & "個數(shù)")。

請大家想一想,如果要求輸入100個數(shù),并輸出這100個數(shù)的和,應(yīng)該怎么修改程序呢?

只要把For循環(huán)的終值改為100就可以了。由于輸入100個數(shù)比較慢,我們可以借助隨機(jī)函數(shù)隨機(jī)生成100個[1,9]范圍內(nèi)的數(shù)據(jù)進(jìn)行測試,因為100個數(shù)一行顯示不完,所以我們按每行輸出20個的形式輸出,代碼修改如下:

Private Sub Form_Click()

Dim i As Integer, x As Integer

Randomize

Sum = 0 ‘Sum 的初始值為0

For i = 1 To 100

x = Int(9 * Rnd + 1)

Print x;

If i Mod 20 = 0 Then Print

Sum = Sum + x

Next i

Print

Print "這些數(shù)的和="; Sum

End Sub

總結(jié):通過這個例題我們可以看出,即使是求1000個10000個甚至更多數(shù)據(jù)的和,只要修改For語句的終值就可以了,不需修改其他代碼。像這類重復(fù)處理的問題,不借助于循環(huán)結(jié)構(gòu),幾乎無法實現(xiàn)問題的解。

接下來我們再看一個例題,求1+2+3+……+100的值。

通過觀察我們可以發(fā)現(xiàn),這是一個累加求和的問題,所以就得用到累加公式:Sum=Sum+X,這里的X不是一個隨機(jī)數(shù),而是有規(guī)律的一列數(shù),1、2、3、……、100,對于這種初值為1,終值為100,步長是1的問題,很容易聯(lián)想到用For循環(huán)的循環(huán)控制變量i依次取得1、2、3、……、100,然后累加i即可。代碼如下:

Private Sub Form_Click()

Dim i As Integer, Sum As Integer

Sum = 0

For i = 1 To 100

Sum = Sum + i

Next i

Print "1+2+3+...+100="; Sum

End Sub

For循環(huán)的循環(huán)控制變量,不僅可以從小到大變化,也能從大到小變化,只要將步長設(shè)置為負(fù)數(shù)就可以。比如上例,可以將For語句修改為:

For i = 100 To 1 Step -1 ,其他代碼不變,求得的就是100+99+98+……+1的和。

思考:求1+2+3+……+n的值。

與上例相比,唯一的變化是終值變?yōu)榱薾,n需要從鍵盤獲得一個初始值。程序修改為:

Private Sub Form_Click()

Dim i As Integer, Sum As Integer

Dim n As Integer

n = Val(InputBox("請輸入一個正整數(shù)"))

Sum = 0

For i = 1 To n

Sum = Sum + i

Next i

Print "1+2+3+...+"; n; "="; Sum

End Sub

解決了1+2+3+……+n的問題,那么如何求1×2×3×……×n的值。(n!)

類似1×2×3×……×n這樣的表達(dá)式,我們稱為累乘,如果引入一個變量F保存累乘的結(jié)果,則只需要將累加表達(dá)式轉(zhuǎn)換成F = F * i 即可。這里必須考慮到F的初始值應(yīng)該為1。所以只要把上面的程序做如下修改即可。

Private Sub Form_Click()

Dim i As Integer, F As Long

Dim n As Integer

n = Val(InputBox("請輸入一個正整數(shù)"))

F = 1

For i = 1 To n

F = F * i

Next i

Print n; "!="; F

End Sub

總結(jié):本文主要討論了For循環(huán)語句結(jié)構(gòu),F(xiàn)or循環(huán)主要用于解決有固定循環(huán)次數(shù)的問題,通過初值、終值和步長就能計算出循環(huán)次數(shù)。只要循環(huán)控制變量不在循環(huán)體內(nèi)被重新賦值,循環(huán)的次數(shù)就是確定的((終值-初值)/步長+1)。

主站蜘蛛池模板: 91年精品国产福利线观看久久| 日韩一二三区视频精品| 婷婷99视频精品全部在线观看 | 91无码国产视频| 精品久久久久无码| 亚洲精品国产自在现线最新| 精品1区2区3区| 日本不卡视频在线| 国模私拍一区二区| 国产精品午夜电影| 欧美精品三级在线| 九九九国产| 亚洲欧美另类日本| 国产探花在线视频| 日韩麻豆小视频| 制服丝袜亚洲| 免费精品一区二区h| 香蕉久久国产超碰青草| 人妻熟妇日韩AV在线播放| 美女无遮挡拍拍拍免费视频| 亚洲视频四区| 最新国产麻豆aⅴ精品无| 好紧好深好大乳无码中文字幕| 国产00高中生在线播放| 日韩国产黄色网站| 一区二区三区四区在线| 亚洲成A人V欧美综合| 日韩无码真实干出血视频| 亚洲国产综合自在线另类| 亚洲一级无毛片无码在线免费视频 | 日韩a在线观看免费观看| h网址在线观看| 毛片免费在线视频| 午夜免费小视频| 国产凹凸视频在线观看| 亚洲熟女中文字幕男人总站| 97久久免费视频| 成年人午夜免费视频| 亚洲国产精品久久久久秋霞影院| 国产呦精品一区二区三区网站| 精品国产成人高清在线| 婷婷色婷婷| 99无码中文字幕视频| 丰满人妻久久中文字幕| 欧美精品三级在线| 亚洲精品自产拍在线观看APP| 国产偷国产偷在线高清| 亚洲欧美另类日本| 国产人人射| 人人爽人人爽人人片| 亚洲av无码久久无遮挡| 一本久道久久综合多人| 91午夜福利在线观看| 就去吻亚洲精品国产欧美| 四虎永久免费在线| 黄片在线永久| 青草视频在线观看国产| 久久精品午夜视频| 国产无码性爱一区二区三区| 亚洲欧美国产视频| 成人欧美日韩| 久久精品视频亚洲| 成人一区在线| 国产尹人香蕉综合在线电影| 黄色一及毛片| 国产不卡一级毛片视频| 亚洲大尺度在线| 99er精品视频| 亚洲日韩第九十九页| 精品午夜国产福利观看| 国产乱肥老妇精品视频| 99热这里只有免费国产精品 | 91在线视频福利| 免费无遮挡AV| 国产精品无码影视久久久久久久 | 欧美亚洲国产日韩电影在线| 91原创视频在线| 亚州AV秘 一区二区三区| 国产网站免费看| 亚洲 欧美 中文 AⅤ在线视频| 国产乱人伦精品一区二区| 少妇极品熟妇人妻专区视频|