- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
迴圈結構for ... next
(一)用處 : 用於重複執行之程式區塊,進行某一區間數值之反覆運算,例如累加、累
(二)語法for?? 計數變數 = 起始值?? ?to?? 終止值???? [ step?? 計數變數增量 ]?
(敘述區)
next?? [ 計數變數 ]
(1) 當變數值介於初值和終值之間時,會執行迴圈內的敘述,每執行一次迴圈後(即每執行一次Next指令)便加一次增值(增值可能為正或負數),直到變數值超過終值時跳出迴圈。
(2)迴圈執行完畢後,計數變數值為 (終值+增值),非終值。
(2) 增加量為1 時,Step 可以省略。
(3) Next 後之控制變數可以省略。
(4) 若中途要跳出迴圈,可用Exit For 指令,讓程式執行Next 之後的敘述。
範例:
Private Sub Form_Activate( )
For I=2 To 6 Step 2
Print I;
Next I
Print
Print 迴圈結束後I 值為 ;I
End Sub 執行結果:
2 4 6
迴圈結束後I 值為 8
說明:
若將第2 列改為For I=5 To -5 Step -3 則執行結果為
5 2 -1 -4
迴圈結束後I 值為 -7。
(三)程式範例
程式範例(1):? 輸入n值? , 求 1 + 2 +3 +.....+n
[1] 設計方式(a): 遞增相加
sub command1_click( )
n = val(text1.text)
sum = 0
for? i? =? 1?? to? n ?step? 1?????? step? 1 增量1可以省略
sum = sum + i
next i
label1=sum
end sub
[2] 設計方式(b): 遞減相加
sub command1_click( )
n = val(text1.text)
sum = 0
for? i? =? n?? to? 1? step? -1????
sum = sum + i
next i
label1=sum
end sub
程式範例(2):? 輸入n值? , 求 1 + 3 +5 +7+9+.....+nsub command1_click( )
n = val(text1.text)
sum = 0
for? i? =? 1?? to? n? step? 2?????
sum = sum + i
next i
label1=sum
end sub
程式範例(3):? 輸入n值? , 求 n! = 1* 2* 3* .....*n
sub command1_click( )
n = val(text1.text)
sum = 1
for? i? =? 1?? to? n? step 1???????? ??? step? 1 增量1可以省略
sum = sum * i
next i
label1=sum
end sub
程式範例(4):? 輸入n值? , 求 1^2? + 2^2 + 3^2 + .....+ n^2?? (1~n每數值平方相加)
sub command1_click( )
n = val(text1.text)
sum = 0
for? i? =? 1?? to? n? ??
sum = sum + i^2
next i
label1=sum
end sub 程式範例(5):? 輸入n值? , 判斷是質數或非質數
質數的定義:除了自己及1之外,沒有任何一數 值可以整除它。
即 拿2、3、4、5…….、(n-1) ?來除? n
若 整除 ,
則 為 ??“ 非質數 “ ?
否則 為 “
質數 “
(三)
sub command1_click( )
flag = true????????????????????????????? 設定flag變數為邏輯值true
n= val(text1.text)
for? j? =? 2?? to? n-1? ??????????????
if (n? mod? j ) = 0 then?????? a除以j的餘數,是否為0
flag = false???????????? 更改flag變數為邏輯值
exit?? for??????????????????? 跳出for...next 迴圈
endif
next? j
if?? flag = true?? then
label1=質數
else
label1=非質數
endif
end sub
例:
01 Private Sub Form_Activate( )
02 S=0
03 For I=1 To
文档评论(0)