我正試圖建立一個for回圈,在一個帶有星號的矩形中,用戶可以輸入他們希望顯示的行和列的數量。我能夠讓行正確作業,但我無法讓列正常作業。誰能告訴我哪里出錯了嗎:
?Private Sub cmdProcess_Click(sender As Object, e As EventArgs) Handles cmdProcess。 點擊
Dim rows As Integer >。
Dim columns As Integer
rows = txtRow.Text Integer
columns = txtColumn.Text 欄 = txtColumn.Text
lbloutput.Text=""
For i = 1 To rows
lbloutput.Text = lbloutput.Text & "*"/span> & vbCrLf
下一步 下一步
End Sub
uj5u.com熱心網友回復:
在做其他事情之前:如果用戶輸入的是負數,或者是0,你的代碼就會出錯。除非你有其他的代碼來解決這個問題,否則你可能想嘗試一下這樣的方法:
rows = Abs(cInt(txtRow.Text)
columns = Abs(cInt(txtColumn.Text)
if rows*columns < 1 Then Exit Sub
(如果你的代碼是在VBA中,而不是在VB中,那么使用Integer比Long沒有任何優勢,因為它們都使用相同數量的記憶體--Integer只是把一半的記憶體鎖定為不可用)
一個天真的方法是使用兩個回圈,就像這樣:
lbloutput.Text = ""
For i = 1 To rows '多少行的文本?
For j = 1 to columns '每行多少個星號?
lbloutput.Text = lbloutput.Text & "*"/span>
Next j
lbloutput.Text = lbloutput.Text & vbCrLf
Next i
然而,一個更簡單的方法是使用String函式:
lbloutput.Text = ""
For i = 1 To rows
lbloutput.Text = lbloutput.Text & String( columns, "*") & vbCrLf
Next i
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324081.html
標籤:
