㈠ vb中循環結構的問題
sql = "..."
這個只是生成sql命令字串,並沒有實際執行啊,等循環結束後再來執行,當然就只是最後一次循環的值啦。就好比讓你吃10個蘋果,你每次都拿起一個蘋果又放下去拿下一個蘋果,等拿到最後一個蘋果才吃,肯定就只吃到一個蘋果啦!你應該拿起一個蘋果就立刻往嘴裡塞啊,這樣才能吃完全部蘋果啊!
另外 For n = ... 這個循環是畫蛇添足啊,最後你的循環總次數將是 i*j*i*j
㈡ vb中循環問題
Dim arr
Private Sub Form_Load()
arr= Array("第一項", "第二項", "第三項", "第四項")
Label1.Caption = arr(0)
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
static i As Integer
Label1.Caption =arr(i)
If i = 3 Then
i =0
Else
i = i + 1
End If
End Sub
暈,timer里那個變數i應該聲明成靜態的,用 static
這下可以了,你試試
㈢ vb循環的問題
For...Next 語句
以指定次數來重復執行一組語句。
語法
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next [counter]
For…Next 語句的語法具有以下幾個部分:
部分 描述
counter 必要參數。用做循環計數器的數值變數。這個變數不能是布爾或數組元素。
start 必要參數。counter 的初值。
End 必要參數,counter 的終值。
Step 可選參數。counter 的步長。如果沒有指定,則 step 的預設值為 1。
Statements 可選參數。放在 For 和 Next 之間的一條或多條語句,它們將被執行指定的次數。
說明
step 參數可以是正數或負數。step 參數值決定循環的執行情況,如下所示:
值 循環執行,如果
正數或 0 counter <= end
負數 counter >= end
當所有循環中的語句都執行後,step 的值會加到 counter 中。此時,循環中的語句可能會再次執行(基於循環開始執行時同樣的測試),也可能是退出循環並從 Next 語句之後的語句繼續執行。
提示 在循環中改變 counter 的值,將會使程序代碼的閱讀和調試變得更加困難。
循環中可以在任何位置放置任意個 Exit For 語句,隨時退出循環。 Exit For經常在條件判斷之後使用,例如 If...Then,並將控制權轉移到緊接在 Next 之後的語句。
可以將一個 For...Next 循環放置在另一個 For...Next 循環中,組成嵌套循環。不過在每個循環中的 counter 要使用不同的變數名。下面的體系結構是正確的:
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I
注意 如果省略 Next 語句中的 counter,就像 counter 存在時一樣執行。但如果 Next 語句在它相對應的 For 語句之前出現,則會產生錯誤。
For Each...Next 語句
針對一個數組或集合中的每個元素,重復執行一組語句。
語法
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]
For...Each...Next 語句的語法具有以下幾個部分:
部分 描述
element 必要參數。用來遍歷集合或數組中所有元素的變數。對於集合來說,element 可能是一個 Variant 變數、一個通用對象變數或任何特殊對象變數。對於數組而言,element只能是一個 Variant 變數。
group 必要參數。對象集合或數組的名稱(用戶定義類型的數組除外)。
statements 可選參數,針對 group 中的每一項執行的一條或多條語句。
說明
如果集合中至少有一個元素,就會進入 For...Each 塊執行。一旦進入循環,便先針對 group 中第一個元素執行循環中的所有語句。如果 group 中還有其它的元素,則會針對它們執行循環中的語句,當 group 中的所有元素都執行完了,便會退出循環,然後從 Next 語句之後的語句繼續執行。
在循環中可以在任何位置放置任意個 Exit For 語句,隨時退出循環。Exit For經常在條件判斷之後使用,例如If匱hen,並將控制權轉移到緊接在 Next 之後的語句。
可以將一個 For...Each...Next 循環放在另一個之中來組成嵌套式 For...Each...Next 循環。但是每個循環的 element 必須是唯一的。
注意 如果省略 Next 語句中的 element,就像 element 存在時一樣執行。如果 Next 語句在它相對應的 For 語句之前出現,則會產生錯誤。
不能在 For...Each...Next 語句中使用用戶自定義類型數組,因為 Variant 不能包含用戶自定義類型。
Do...Loop 語句
當條件為 True 時,或直到條件變為 True 時,重復執行一個語句塊中的命令。
語法
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop
或者可以使用下面這種語法:
Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]
Do Loop 語句的語法具有以下幾個部分:
部分 描述
condition 可選參數。數值表達式或字元串表達式,其值為 True 或 False。如果 condition 是 Null,則 condition 會被當作 False。
statements 一條或多條命令,它們將被重復當或直到 condition 為 True。
說明
在Do…Loop 中可以在任何位置放置任意個數的 Exit Do 語句,隨時跳出Do匧oop 循環。Exit Do 通常用於條件判斷之後,例如If匱hen,在這種情況下,Exit Do 語句將控制權轉移到緊接在 Loop 命令之後的語句。
如果 Exit Do 使用在嵌套的Do…Loop 語句中,則 Exit Do 會將控制權轉移到 Exit Do 所在位置的外層循環。
㈣ VB循環的問題
dim filename as string
For i = 1 To 100
filename="f:\cs\" & i & ".exe"
If Dir(filename, vbNormal) <> "" Then
Shell filename
Else
exit for'在已經找不到了文件的情況下應該退出循環,所以在此加了這一句
End If
Next i
MsgBox "執行完成,共執行了" & iif(i=100,i,i-1) & "個Exe文件!"
在不知道循環次數的情況下,最好用Do while 來循環
dim filename as string
dim i as integer
i=1
filename="f:\cs\" & i & ".exe"
If Dir(filename, vbNormal) = "" Then filename=""
do while (filename<>"")
Shell filename
i=i+1
filename="f:\cs\" & i & ".exe"
If Dir(filename, vbNormal) = "" Then filename=""
loop
MsgBox "執行完成,共執行了" & i & "個Exe文件!"
㈤ VB 循環 問題
因為true=-1,x=x+1,x永遠比-1大,所以會一直循環直到溢出
就是說題目是當while條件為true時循環,not x相當於not true,即不是-1就循環。你將x初始值定位-2(也就是第一句寫成x%=-2)就會發現只執行一次。這樣就可以驗證了。
㈥ vb 循環問題
在你的控制控制項的click事件中編寫「要控制控制項的名稱.enable=trun/false」你說的循環可以通過開關控制(即通過一個變數判斷應該執行什麼代碼)
如:
Private Sub Command1_Click()
If Command2.Enabled = False Then Command2.Enabled = True Else Command2.Enabled = False
End Sub
如果想控制多個同樣的控制項可以把這些控制項編組,用index控制,如果是不同控制項那隻能逐個控制了。
㈦ 關於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行也這樣。 而且也少執行了一次 。
●這個程序是有解決方法的:代碼改成 Dim i As Double 就對了。
●這是因為計算機在計算Single的時候是按二進制移位進行的,也就是說,計算機本身的精度有一定的偏差,在這種情況下,後面不夠0.1了,所以就不循環了
**************
●你的程序雖然沒有定義i為single,但執行一次循環,變數i變成1.1時,VB就自動把i轉換成了single類型。
●最後,你可以給學生演示這幾種,幫助他們明白:
***********************
還是用你的程序吧:
For i = 0 To 1 Step 0.1 ---循環11次
For i = 1 To 2 Step 0.1 ---誤差!少1次!
For i = 2 To 3 Step 0.1 ---循環11次
For i = 3 To 4 Step 0.1 ---誤差!少1次!
... ...
是不是很奇怪呢?我剛才寫回復的時候也很奇怪:當初值是偶數,次數正確,初值為奇數,就會少一次!
●所以你可以這樣跟學生說,當循環到第10次的時候,i變成1.9000001,第11次時i變成2.0000001 了!!!
2.0000001>2,所以最後一次循環沒被執行
打字不易,如滿意,望採納。
㈧ VB 循環問題!
-------------------------------
For i=1 To 4
x=4
For j=1 To 3
是不是沒有意義!因為不運行
也運行了,但是不管怎麼運行,最後總會執行到
x = 3
For k = 1 To 2
x = x + 5
Next
這段上,到了這段,不管外邊循環x是幾,都重定義為3,執行K循環後成13
㈨ vb中循環的問題
Do
until
條件
循環體
Loop
Do
until
循環:一直循環,直到條件成立時退出循環
如果條件為-1
返回為ture,即滿足條件,所以退出循環
所以本題的答案選擇A
㈩ vb 循環的問題
1、「For」語句,它的格式是:
For <循環變數>=<初賦值> To <終值> [Step <步長>]
…要循環執行D的代碼…
Next <循環變數>
在默認情況下,Step被設為「1」,可以省略 例如:
Dim a As Integer
a = 0
For I=1 To 10
a=a+I
Next I
這是一個最簡單的累加器的例子,把1到10累加在一起,然後賦值給「a」
2、While語句也是一個很常用的循環語句,它的形式很多:
①While …條件…
…要循環執行D的代碼…
Wend
例如
Dim a As Integer
a = 0
I = 1
While I <= 10
a = a + I
I = I + 1
Wend
②Do While …條件…
…要循環執行D的代碼…
Loop
例如
Dim a As Integer
a = 0
i = 1
Do While i <= 10
a = a + i
i = i + 1
Loop
③Do …要循環執行D的代碼…
Loop While …條件…
例如
Dim a As Integer
a = 0
i = 1
Do
a = a + i
i = i + 1
Loop While i <= 10
While後面都跟邏輯條件判斷,「Do While …… Loop語句」和「While …… Wend 語句」作用相似,都是先判斷While後面的條件是否為「真」,如果為「真」則執行裡面的語句,如果為「假」,則退出循環,循環直至條件為「假」終止。「Do …… Loop While 」與前兩者的區別在於,它不管條件的真假,都會先執行「Do」後面的語句,也就是說,它至少執行語句一次。
●與While用法相似的還有Until語句,它是直至條件為真則終止循環,句式把do until...loop 和 do.. loop until,但是因為容易記混,所以我建議只用While即可。Until <條件>可以相當於While Not <條件>。
如
Dim a As Integer
a = 0
i = 1
Do Until i > 10
a = a + i
i = i + 1
Loop
Dim a As Integer
a = 0
i = 1
Do
a = a + i
i = i + 1
Loop Until i > 10
●For循環和Whlie循環應當根據適當的環境使用,它們有時也可替換。