For Next 計次執行迴圈的用法

會不會使用For Next往往是成功的關鍵

大學教授也很喜歡考你For Next的用法

他可能會叫你寫出一個1加到100的程式

如果你第一次聽到,你可能會覺得很難…….

有人會說,我只要連續從1一直寫到100相加就好了阿(1+2+3+4+5+6+7+….+100)

雖然這樣寫也可以執行的出來,可是這個答案就不是教授問這個問題的本意

那要怎麼寫呢? 別急,慢慢來……

For Next撰寫格式:

For 計次變數 = 起始值 To 終止值 (Step 步進值)

敘述區塊

Next (計次變數)

( )內的可以省略,但會影響執行結果

省略「Step 步進值」的話,將等於「Step 1」

第一次執行此迴圈時,計次變數會被設定為起始值,第一次以後執行迴圈時計次變數會再加上步進值,迴圈會判斷加上步進值後的數值有沒有超過終止值,若超過了,則會跳出迴圈

舉例來說:

For I = 1 To 10
Print I
Next I

我們喜歡把「I」當作是計次變數,但其實也可以改換成別的變數

以上的程式首先進入迴圈時 I = 1 ,接著會列印出I,也就是1

因為1+步進值1 並未超過終止值10 ,所以還會再執行一次迴圈

此時 I = 2 ,所以會列印出2,依此類推

當迴圈計次變數達到10後,迴圈會判別10加上步進值1 是否會大於終止值10

答案是肯定的,所以程式將會跳出迴圈

此時表單上就列印出1~10了!

按下「Command1」

將上面的程式做改變

For I = 1 To 10 Step 2
Print I
Next I

執行結果將會變成↓

若要從10顯示到1則要寫成:

For I = 10 To 1 Step -1
Print I
Next I

步進值也可以為負

執行結果將變成↓

.

For Next 也可以跟For Next合用,就是For Next裡面還有For Next,即為巢狀迴圈

.

利用For Next做連續加法(大學教授常考)

如果我們要寫一個1加到100的程式,要怎麼寫呢?

其實很簡單,只要將一個值為0變數,連續加迴圈的計次變數即可

示範:

For I = 1 to 100

Sum = Sum + I

Next I

Print Sum

Sum如果從來沒有置入數據的話,將預設為0

Sum = Sum + I 意思是說,現在的Sum要等於先前的Sum再加I

第一次執行迴圈時I = 1 , Sum = 0,所以Sum = 0 + 1,Sum會變成1

第二次執行迴圈時I = 2 , Sum = 1,所以Sum = 1 +2 ,Sum會變成3

第三次執行迴圈時I = 3 , Sum = 3,所以Sum = 3 +3 ,Sum會變成6

依此類推,當執行到第100次時,I = 100 , Sum = 4950,所以Sum = 4950 +100 ,Sum會變成5050

然後跳出迴圈,列印(輸出)出Sum的值「5050」

上面的程式頗為精簡,完整的寫法為

Dim I , Sum As Integer

Sum = 0

For I = 1 to 100

Sum = Sum + I

Next I

Print Sum

Dim就是宣告,Integer是整數

就是宣告I和Sum為整數的意思

然後將Sum一開始以0代入

進入迴圈做加法動作

.

平方相加或其它次方相加也很常考

如果要寫一個1平方加3平方加5平方加7平方一直加到99平方,要怎麼寫呢?

其實很簡單,以下是示範:

For I = 1 To 99 Step 2
Sum = Sum + I ^ 2
Next I
Print Sum

因為都是平方,我們無需考慮到它的指數

它的底數是很有規律的,一直加2,加到99

所以For I = 1 To 99 Step 2

然後Sum = Sum + I ^ 2

I ^ 2 就是I平方 ,依此類推

執行完迴圈後所得到的值為166650

.

再舉個例子,1+2平方+3立方+4的四次方+……+10的十次方,這要怎麼寫呢?

這個問題也很簡單,別被他的指數給唬住了

仔細一看它的底數都等於指數,所以…

For I = 1 To 10
Sum = Sum + I ^ I
Next I
Print Sum

計算結果,Sum等於10405071317

.

還有一個比較簡單的例子

1+2立方+3的五次方+4的七次方+5的九次方+….+10的19次方

注意觀察規律,指數的值等於底數的兩倍減一

所以可以寫成

For I = 1 To 10
Sum = Sum + I ^ (I * 2 – 1)
Next I
Print Sum

.

最後一個比較難的例子,需用到巢狀迴圈

1+1平方+1立方+2+2平方+2立方+3+3平方+3立方+…..+5立方

上面的式子,可以撰寫成下列程式碼

For I = 1 To 5
For A = 1 To 3
Sum = Sum + I ^ A
Next A
Next I
Print Sum

I是底數,A是指數

剛開始執行I迴圈I =1 ,然後執行A迴圈A=1

A迴圈執行到第三次後,跳出A迴圈,執行I迴圈,I = 2

然後重新執行A迴圈A = 1,依此類推

第一次執行A迴圈,I = 1 , A = 1 ,  Sum = 0 ,所以Sum = 0 +1的一次方 = 0 +1 ,Sum會變成1

第二次執行A迴圈,I = 1 , A = 2 ,  Sum = 1 ,所以Sum = 1 +1的平方= 1 +1 ,Sum會變成2

第三次執行A迴圈,I = 1 , A = 2 ,  Sum = 2 ,所以Sum = 2 +1的立方= 2 +1 ,Sum會變成3

第四次執行A迴圈,I = 2 , A = 1 ,  Sum = 3 ,所以Sum = 3 +2的一次方= 3 +2 ,Sum會變成5

第五次執行A迴圈,I = 2 , A = 2 ,  Sum = 5 ,所以Sum = 5 +2的平方= 5 +4 ,Sum會變成9

第六次執行A迴圈,I = 2 , A = 3 ,  Sum = 9 ,所以Sum = 9 +2的立方= 9 +8 ,Sum會變成17

依此類推,當最後一次執行A迴圈時,I = 5 , A = 3 ,  Sum = 170 ,所以Sum = 170 +5的立方= 170 +125 ,Sum會變成295

.

本篇教學到此結束,有問題可發表迴響

文章分類:VB6.0|標籤:,

迴響已關閉