求教VBFOR迴圈語句中step的意思

2021-03-06 22:43:36 字數 4827 閱讀 1447

1樓:匿名使用者

是的,for i = 1 to 10 step 2 表示從1開始迴圈,每次變數加2

2樓:匿名使用者

i=1,x=5+1/5=5

i=3,x=5+3/5=5

i=5,x=5+5/5=6

i=7,x=6+7/5=7

i=9,x=7+9/5=8

3樓:匿名使用者

每次迴圈你的計數器,也就是i加2,如果不寫(保持預設)就是隻加1

4樓:雙心依月

step是步階,就是迴圈每執行一次,i的值就加2.

5樓:和清綺希麥

哦,這個結果我已經執行過了!

都是11!沒什麼區別!

從0-1,每次增加0.1,迴圈11次。所以累加後和為11從0-0.1,每次增加0.01,迴圈11次,所以累加後和也為11沒什麼區別!!!

下面是我執行的**

private

sub***mand1_click()n=0fori=

0to0.1step

0.01n=

n+1next

print

"n="&n

k=0forj=

0to0.1step

0.01k=

k+1next

print

"k="&k

endsub

剛才又把i的變數定義為整型,單精度,雙精度。分別實驗了一下,用msgbox嘗試輸出了每次迴圈中i與n的結果,發現當單精度的時候,i=0.1,....

0.7,0.800001,0.

90001,所以導致最後結果就變成10次了!

因此懷疑是單精度的時候,在0.7+0.1的過程中,導致結果運算出錯。就導致後面一系列的錯誤了。。

如果你還想查具體原因,參照單精度的範圍,自己再仔細研究了。

在vb的for迴圈語句中的step有什麼作用,我每次看到這裡都不明白step到底怎麼使用,什麼時候用,後者為什麼

6樓:匿名使用者

步長,你迴圈從1to10, 每次加多少呢

step就是 每次加多少 不寫 就是 預設加1

7樓:匿名使用者

一般迴圈變數都是以1為單位增加,但當需要以2或其他單位增加時就可以用step了

8樓:匿名使用者

for...next 語句示例

本示例使用 for...next 語句建立一個字串,其內容為由 0 到 9 的十個數字所組成的字串,每個字串之間用空格隔開。外層迴圈使用一個變數當作迴圈計數器,每迴圈一次,變數值減一。

dim words, chars, mystring

for words = 10 to 1 step -1 ' 建立 10 次迴圈。

for chars = 0 to 9 ' 建立 10 次迴圈。

mystring = mystring & chars ' 將數字新增到字串中。

next chars ' increment counter

mystring = mystring & " " ' 新增一個空格。

next words

vb中for迴圈step的問題

9樓:匿名使用者

如果沒有其他條件使迴圈變數的值發生變化,當第一次迴圈條件滿足時,step為0將造成死迴圈,當第一次迴圈條件不滿足時,step為0不迴圈

10樓:岔路程式緣

先看這幾句執行時的作用:

(1)s = 0,給s設初值0

(2)for i = 1 to 5,第一次執行這一句時,對i設初值1,以後每次執行這一句時都判斷i的值是否介於初值和終值之間,也就是在1和5之間,如果在這個範圍之內,就執行下一句,如果超出這個範圍,就去執行next i後面的那一句了。——樓主所提的問題,這一句話是第一個重點,請仔細理解。

(3)s = s + i,把s和i相加,再把和賦值給s

(4)next i,執行這一句時,把i的值加上步長,在本例中,就是加1,再把值給i,相當於執行了i=i+1,再返回for i=1 to 5那一句去執行。——樓主所提的問題,這一句話是第二個重點,請仔細理解。

(5)print s, i,這一句是列印s和i的值,當程式執行到這一句時,i的值一定是6了,因為等於5時還跳不出這迴圈體呢!

問題補充:private sub ***mand1_click()

for i = 1 to 3 step 2

print "vb"

next i

end sub

為什麼「vb」的執行次數為2次 step為2 不是直接1跳到3嗎

補充答覆:

樓主說的對啊,確實是直接從1跳到3,但是3仍然符合進入迴圈的條件,所是要print 兩次"vb"啊!!

-------------------------------------

private sub ***mand1_click()

dim x as integer

dim n as integer

x = 1

n = 0

do while x < 20

n = n + 1

x = x * 3

loop

text1.text = str(x)

text2.text = str(n)

end sub

為什麼n=3 是怎麼計算出來的??

再補充答覆:

看執行do.....loop之間的語句幾次就可以了

第一次,n=n+1=0+1=1,x=x*3=1*3=3

第二次,n=n+1=1+1=2,x=x*3=3*3=9

第三次,n=n+1=2+1=3,x=x*3=9*3=27

第四次,進入時,判斷 x < 20已經不成立(已經=27了!),所以不能進入,迴圈結束,最終結果是n=3,x=27

11樓:淡智板環

for迴圈

是定長迴圈

.在迴圈開始後

把step

值加到迴圈計數器

(i)裡。並不會動態改變step。

step

的值可以是正數,負數,或0

.為0時,就會無限迴圈.

如果你要動態改變step

你就要用do

或while

迴圈實現。

12樓:我們的夢

使用下面的語句測試,說明它應該是無限迴圈的。

private sub ***mand1_click()for i = 2 to 4 step 0 『這句換為for i = 2 to 2 step 0也行)

j = j + 1

debug.print j

if j > 10 then exit subnext i

end sub

關於vb 中 for next語句中迴圈變數與step的問題

13樓:匿名使用者

哦,這個結果我已經執行過了!

都是11!沒什麼區別!

從0-1,每次

增加0.1,迴圈11次。所回以累加後和為答11從0-0.1,每次增加0.01,迴圈11次,所以累加後和也為11沒什麼區別!!!

下面是我執行的**

private sub ***mand1_click()n = 0

for i = 0 to 0.1 step 0.01n = n + 1

next

print "n=" & n

k = 0

for j = 0 to 0.1 step 0.01k = k + 1

next

print "k=" & k

end sub

剛才又把i的變數定義為整型,單精度,雙精度。分別實驗了一下,用msgbox嘗試輸出了每次迴圈中i與n的結果,發現當單精度的時候,i=0.1,....

0.7,0.800001,0.

90001,所以導致最後結果就變成10次了!

因此懷疑是單精度的時候,在0.7+0.1的過程中,導致結果運算出錯。就導致後面一系列的錯誤了。。

如果你還想查具體原因,參照單精度的範圍,自己再仔細研究了。

14樓:

這是「精度」的問題,

這個 for i = 0 to 0.1 step 0.01 的i值遠遠超過了single的範圍,先看看single與double的區別你就會明專白為什麼:

single(單屬精度浮點型)變數儲存為 ieee 32 位(4 個位元組)浮點數值的形式,

它的範圍在負數的時候是從 -3.402823e38 到 -1.401298e-45,

而在正數的時候是從 1.401298e-45 到 3.402823e38。single 的型別宣告字元為感嘆號 (!)。

double(雙精度浮點型)變數儲存為 ieee 64 位(8 個位元組)浮點數值的形式,

它的範圍在負數的時候是從 -1.79769313486232e308 到 -4.94065645841247e-324,

而正數的時候是從 4.94065645841247e-324 到 1.79769313486232e308。double 的型別宣告字元是數字符號 (#)。

15樓:河中的沙粒

single 為單精度浮點型,由於你用的是小數,在記憶體計數器中0.01和0.1的差別不只是10倍的版關係,具體你可權以再百科中看一下他們在記憶體中的儲存數是多少,所以你如果用single 型別的話就不可以用小數來區別這兩種演算法,如果想用小數區分的話推薦你用其他型別

vbfor迴圈裡巢狀,vb for迴圈裡巢狀if

錯了 for i 1 to 30 正確 for j 0 to k 1 if a j math i then 格式為 if then end if if math i a j 1 thenm j m j 1 end if 你用了兩個if 語句 但是隻用了一個end if 此處再加上一個 end if ...

在多重迴圈語句中,在內迴圈體內用break語句可以跳出所有的

break 不能用在復if 語句中。雖然制有時break 看似在 baiif 語句中執du行,如 for s1 s2 s3 但事實上這裡zhi的break 是執行在for語句中的,跳出dao的是for語句。即使輸入 if b1 這也是跳出外層的for語句或switch語句而已。此解答僅供參考。如果有...

在VB的for迴圈語句中的step有什麼作用,我每次看到這裡

步長,你迴圈從1to10,每次加多少呢 step就是 每次加多少 不寫 就是 預設加1 一般迴圈變數都是以1為單位增加,但當需要以2或其他單位增加時就可以用step了 for.next 語句示例 本示例使用 for.next 語句建立一個字串,其內容為由 0 到 9 的十個數字所組成的字串,每個字串...