1樓:卡洛琳
把if條件換下就可以了,試試下面的程式
for j = 1 to rows '行
for i = 1 to columns '列
if j / scan <> int(j / scan + 1.99) then
print #1, "("
print #1, str(int(j / scan + 0.99)) + pin1 + cstr(i)
print #1, designator + cstr(columns * (j - 1) + i) + "-1"
'else
'print #1, designator + cstr(columns * (j - 1) + i) + "-1"
end if
if j / scan <> int(j / scan + 1.99) then
print #1, ")"
end if
next
next
2樓:聽不清啊
rows = 3: columns = 2: scan = 2: designator = "led": pin = "b"
for j = 1 to rows '行
for i = 1 to columns '列print #1,"("
print #1,str(int(j / scan + 0.99)) + pin + cstr(i)
print #1,designator + cstr(columns * (j - 1) + i) + "-1"
print #1,")"
next
next
vb中的for迴圈的問題
3樓:翰林院裡掃地的
step-1 表示每一步減1,也就是迴圈第一次是i=4,然後是i=3,i=2
這是稱為「冒泡法」的排序方法,可以這樣理解:
外迴圈表示需進行幾輪比較,對4個元素進行比較排序,需要進行3輪比較,所以for i = 4 to 2 step -1。
而內迴圈則可以這樣說:
第一次是i=4,a(1)與a(2)、a(2)與a(3)、a(3)與a(4)進行比較,如果發現排列順序不對,則交換位置,這樣出了內迴圈之後,最大的元素會「沉」到最後一位成為新的a(4)。
而第二次則是i=3,在前三個元素中找到最大的(由於在上一個迴圈比較中a(4)已經是最大的了,所以就不需再拿a(4)出來比較,可將閣下的**中內迴圈改為for j = 1 to i-1),把它沉到第三位成為新的a(3)。同理,第三次是在前兩位進行排序。這樣當迴圈結束後,最小的元素就如水泡往上冒一樣,一步步冒到最上面來了。
樓上的yutuo5兄的內迴圈定義錯了,應該是for j = 1 to i-1 的。
(由於本人疏忽,發表答覆後進行了多次修改,深感抱歉。)
4樓:匿名使用者
只用一層迴圈不能完成排序。比如陣列為:
4321
一次排序後:3214
二次後:2134
三次後:1234
5樓:匿名使用者
首先,只用一層是不可以的,當你的資料很特殊的時候還有可能兩個迴圈是一種變化後的冒泡演算法
改成下面**應該更好
for i = 4 to 2 step -1for j = 1 to i
if a(j) > a(j + 1) thent = a(j + 1)
a(j + 1) = a(j)
a(j) = t
end if
next j
next i
6樓:
for i = 4 to 2 step -1
就是從4到2,每次迴圈遞減1的運算
「vb,do until」迴圈語句問題?
7樓:匿名使用者
數值0等同於布林值常量的false,而do until則是當表示式為真時跳出迴圈,這與do while剛好相反,所以:
do until 0
相當於do until false
相當於do while not(false)相當於do while true
所以,如果不在迴圈體中跳出迴圈或跳出所在過程或end或goto的話,這將是一個死迴圈.
自然,迴圈體將至少被執行一次.
vb中一個簡單for迴圈的問題
8樓:匿名使用者
for迴圈的格式是:
for 迴圈變數=初值 to 終值 [step 步長][語句]
next[迴圈變數]
當步長預設時,預設值為1。
在visual basic中for迴圈屬於「先檢查後執行」語句,這種語句的執行過程:
當步長為正,「迴圈變數」首先取得「初值」,檢查是否超過「終值」,如果超過就一次也不執行而跳出迴圈。如果沒有超過就執行迴圈體內的語句;然後把「迴圈變數」+「步長」賦給「迴圈變數」;然後再與終值比較,如果小於終值則執行語句。重複上述過程,直到迴圈變數超過終值。
當步長為負,則要檢查「迴圈變數」是否小於「終值」。
所以,當k=10時,k值不超過終值10,程式會執行下一輪迴圈,當k=11時,11>終值10,程式不再迴圈,此時k已等於11。
9樓:
k=10的時候仍然符合迴圈要求,要進行一輪迴圈的。
只有到了11時才不符合迴圈要求,繼續執行next之後的操作。
10樓:匿名使用者
因為k等於10時條件滿足,迴圈繼續執行,執行next k ,這時k的值等於11,不滿足條件,迴圈結束。
11樓:匿名使用者
初值為1,執行了十次,就是11
vb的for迴圈問題
12樓:
變數i作為for迴圈的計數變數,會隨迴圈而遞增,因此在迴圈體內建議不要修改它的值,在你的程式中把i放在了迴圈體內,並修改了它的值,因此容易產生錯誤,建議再宣告一個變數,然後進行遞加。
13樓:
這其實很簡單..你首先要理解for i = 0 to 5的含義,這裡其實就相當與i=i+1
在for i = 0 to 5時
在迴圈中i分別等於1,3,5,然後最好執行一次i+1跳出此時i=6在for i = 1 to 5時
在迴圈中i分別等於2,4,6,然後最好執行一次i+1跳出此時i=7如果還不理解..你可以把程式修改為以下形式for i = 0 to 5
i= i + 1
print i
next
msgbox i '這裡i為6
----------------------for i = 1 to 5
i= i + 1
print i
next
msgbox i '這裡的i卻為7
這樣i的變化就很明顯啦
vb for迴圈問題
14樓:岔路程式緣
先看這幾句執行時的作用:
(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 command1_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 command1_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
15樓:匿名使用者
這個程式計算後為什麼i是6而不是5
你可以先把**改成這樣,然後就理解了!!!
private sub command1_click()dim i as integer
dim s as integer
s = 0
for i = 1 to 5
s = s + i
print s,i
next i
print s, i
end sub
第2個問題,也一樣,先可以改成這樣
private sub command1_click()for i = 1 to 3 step 2print i,"vb"
next i
end sub
關鍵,要理解,for迴圈什麼時候執行迴圈,什麼時候終止迴圈;
當i小於或者等於 to後面的那個值,執行迴圈當i大於 to後面的那個值,終止迴圈
16樓:
for i = 1 to 5 即令 i 在迴圈內=1~5.。。。
next 當i=4,執行到此i=5,並迴圈;當i=5,執行到此i=6,並停止迴圈
所以停止迴圈後,i=6
17樓:
最後一次迴圈時 i=5
next i 讓i自增1 所以最後的i就是6了
18樓:匿名使用者
第一題因為每執行一次next i後i的值加1,直到i>5迴圈結束,此時i=6
第二題i=1時執行一次print "vb",i=3時執行一次print "vb",i=5時,i>3迴圈結束。
private sub command1_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=0,x=1滿足條件x<20
n=n+1=0+1=1
x=x*3=1*3=3
此時x=3,滿足條件x<20繼續迴圈
n=n+1=1+1=2
x=x*3=3*3=9
此時n=2,x=9,滿足條件x<20繼續迴圈n=n+1=2+1=3
x=x*3=9*3=27
此時x=27,不滿足條件x<20,迴圈結束。
VB中的For迴圈的問題,VB中FOR迴圈STEP的問題
step 1 表示每一步減1,也就是迴圈第一次是i 4,然後是i 3,i 2 這是稱為 冒泡法 的排序方法,可以這樣理解 外迴圈表示需進行幾輪比較,對4個元素進行比較排序,需要進行3輪比較,所以for i 4 to 2 step 1。而內迴圈則可以這樣說 第一次是i 4,a 1 與a 2 a 2 與...
VB的迴圈問題
你這個問題是不是想說當n 1,n 2和n 3時,執行這段 一次後的值?如果是這樣,那你的理解是對的。這種情況下,你用dim定義s和用static定義s,運算結果沒有區別。但是執行多次的結果就不一樣了。當退出執行這段程式的過程後,用dim定義的變數,不管過程中是否有變化,每次執行過程都是從第一次執行該...
關於vb迴圈次數的問題?急,VB計算迴圈的次數
誤差造成 請看這段程式 private sub form click dim i as single for i 0.2 to 1 step 0.1 print i next end sub 輸出結果是 2.3 4.5 6.7 8000001 9000001 你可以把程式放入vb除錯一下,最後2行也...