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

循序漸進學編程
——For……Next循環控制結構

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

劉 偉

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

Visual Basic程序設計語言提供了三種循環控制結構,For……Next、While……Wend和Do……Loop,分別用于解決不同特征的循環處理問題。今天我們主要討論For……Next循環控制結構。

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

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

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個數")

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

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

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

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

Sum = A + B + C + D + E

Print Sum

End Sub

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

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

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

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

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

3)跑完5000米就結束;

4)跑到天亮就結束;

……

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

For 循環控制變量 = 初值 To 終值 [Step 步長]

語句組1

[Exit For]

語句組2

Next [循環控制變量]

幾點說明:

加粗標注的部分是必不可少的控制語句,[]內的內容是可以省略的內容;

循環控制變量是某一合法的變量名;

初值 To 終值 用來決定循環控制變量的取值范圍;

若Step 步長 省略,則默認的步長為1;

Exit For語句用于實現當滿足一定條件時,提前退出當前For循環,執行Next之后的代碼;

For和Next之間的代碼叫循環體。

比如,用For……Next 循環結構輸出1、2、3、……、10這10個數,程序如下:

Private Sub Form_Click()

Dim i As Integer

For i = 1 To 10 Step 1

Print i;

Next i

End Sub

1.當程序執行到For語句時,計算出初值、終值和步長,并且將初值賦值給循環控制變量。

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

3.當執行到Next語句的時候系統做如下工作:首先循環控制變量增加一個步長,然后轉到第2步。

下面我們試著用For……Next循環結構輸入5個數:

Private Sub Form_Click()

Dim i As Integer

For i = 1 To 5

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

Print x;

Next i

End Sub

如果是輸入5個數,輸出這5個數的和呢?

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

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

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

Private Sub Form_Click()

Dim i As Integer, x As Integer

Sum = 0 ‘Sum 的初始值為0

For i = 1 To 5

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

Print x;

Sum = Sum + x ‘累加求和

Next i

Print

Print "這些數的和="; Sum

End Sub

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

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

只要把For循環的終值改為100就可以了。由于輸入100個數比較慢,我們可以借助隨機函數隨機生成100個[1,9]范圍內的數據進行測試,因為100個數一行顯示不完,所以我們按每行輸出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 "這些數的和="; Sum

End Sub

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

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

通過觀察我們可以發現,這是一個累加求和的問題,所以就得用到累加公式:Sum=Sum+X,這里的X不是一個隨機數,而是有規律的一列數,1、2、3、……、100,對于這種初值為1,終值為100,步長是1的問題,很容易聯想到用For循環的循環控制變量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循環的循環控制變量,不僅可以從小到大變化,也能從大到小變化,只要將步長設置為負數就可以。比如上例,可以將For語句修改為:

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

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

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

Private Sub Form_Click()

Dim i As Integer, Sum As Integer

Dim n As Integer

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

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這樣的表達式,我們稱為累乘,如果引入一個變量F保存累乘的結果,則只需要將累加表達式轉換成F = F * i 即可。這里必須考慮到F的初始值應該為1。所以只要把上面的程序做如下修改即可。

Private Sub Form_Click()

Dim i As Integer, F As Long

Dim n As Integer

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

F = 1

For i = 1 To n

F = F * i

Next i

Print n; "!="; F

End Sub

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

主站蜘蛛池模板: 国产成年无码AⅤ片在线| 婷婷综合色| 91年精品国产福利线观看久久| 中文字幕1区2区| 亚洲天天更新| 免费人成又黄又爽的视频网站| 黄色网址手机国内免费在线观看| 亚洲美女一区二区三区| 人人妻人人澡人人爽欧美一区| 国产欧美成人不卡视频| 久久婷婷人人澡人人爱91| 一区二区在线视频免费观看| 国产精品免费电影| 欧美国产成人在线| av一区二区三区高清久久| 欧美国产在线精品17p| 日韩精品欧美国产在线| 欧美在线观看不卡| 久久婷婷五月综合色一区二区| 国产欧美日韩专区发布| 欧美成一级| 亚洲第一国产综合| 国产无人区一区二区三区| 狠狠ⅴ日韩v欧美v天堂| 亚洲精品在线影院| 国产免费看久久久| 美女亚洲一区| 一级毛片a女人刺激视频免费| 亚洲日本韩在线观看| 国产欧美日韩综合一区在线播放| 一本色道久久88亚洲综合| 亚洲二区视频| 亚洲欧美综合在线观看| 久久国产精品77777| 欧美亚洲日韩不卡在线在线观看| 91精品国产一区| 国产精品久久久久久久伊一| 波多野结衣一区二区三区88| 欧美日韩国产综合视频在线观看| 欧美激情伊人| 欧美性天天| 无码视频国产精品一区二区| 亚洲成人黄色在线| 欧美日韩国产综合视频在线观看 | 天天综合天天综合| 亚洲高清在线天堂精品| 在线观看无码av免费不卡网站 | 伊人无码视屏| 91精品伊人久久大香线蕉| 搞黄网站免费观看| AV网站中文| 中日韩欧亚无码视频| 在线亚洲精品福利网址导航| 亚洲一区二区三区麻豆| 国产激情无码一区二区APP| 国产手机在线观看| 国产成人无码AV在线播放动漫| 思思99思思久久最新精品| 国产福利小视频高清在线观看| 久草美女视频| 亚洲国产看片基地久久1024| 中文字幕调教一区二区视频| 日韩无码一二三区| 青草视频在线观看国产| 五月婷婷丁香综合| 精品国产免费人成在线观看| 永久在线播放| 国产成人a在线观看视频| 国产精品自在在线午夜| 天天躁夜夜躁狠狠躁图片| 国产美女在线观看| 手机在线国产精品| 试看120秒男女啪啪免费| 91外围女在线观看| 欧美日韩北条麻妃一区二区| 久久一本日韩精品中文字幕屁孩| 国产成人三级在线观看视频| 91福利在线观看视频| 美女高潮全身流白浆福利区| 日本不卡视频在线| 午夜日本永久乱码免费播放片| 一级毛片免费不卡在线视频|