嵌套For循环vb.net
如果我在文本框中输入5,答案如下嵌套For循环vb.net,vb.net,loops,for-loop,nested,Vb.net,Loops,For Loop,Nested,如果我在文本框中输入5,答案如下 112123123412345 如果我输入10或更多,答案将是 1121231234123451234512345 61234567123456812345679 1234567810 我的代码: Private Sub CmdOk_Click() Dim a, b, c, d, z As Integer z = TxtInput.Text For a = 1 To z Step 1 List1.AddItem a For b = 2 To z Step 1
1
12
123
1234
12345
如果我输入10或更多,答案将是
1
12
123
1234
12345
12345
12345 6
1234567
1234568
12345679
1234567810
我的代码:
Private Sub CmdOk_Click()
Dim a, b, c, d, z As Integer
z = TxtInput.Text
For a = 1 To z Step 1
List1.AddItem a
For b = 2 To z Step 1
List1.AddItem a & " " & b
For c = 3 To z step 1
List1.AddItem a & " " & b & " " & c
For d = 4 To z Step 1
List1.AddItem a & " " & b & " " & c & " " & d
Next d
Next c
Next b
Next a
End Sub
你为什么把事情弄得这么复杂 这应该是可行的:
Private Sub CmdOk_Click()
Dim z as String = TxtInput.Text
Dim ListTemporary as String = "1"
For i = 2 To Integer.parse(z) Step 1
ListTemporary = ListTemporary & " " & i.ToString()
List1.AddItem ListTemporary
Next
End Sub
一行(为清晰起见编辑)
作为旁注,这种方法的速度大约是另一种方法的两倍,如果数字变大,这一点很重要。这是有效的。试试这个
List1.Items.Clear()
Dim i, j, z As Integer
Dim x, a As String
z = TxtInput.Text
For i = 1 To z
For j = 1 To i
x = Convert.ToString(j)
a = a & " " & x
Next
List1.Items.Add(a)
a = ""
Next
你有什么问题吗?@puropoix他的问题可能是它在屏幕上没有正确显示。但是是的,他没有写任何问题。我在下面贴了一个最简单的方法。这不是。但不管怎么说,还是不错的。(祝你以后调试顺利…@Sifu谢谢。我的比你的快一倍。我毫不怀疑你的比我的快得多。这就像比较
Jquery.js
和Jquery.min.js
的大小一样,当然最小化版本更轻更快,但是你能理解其中的任何内容吗?我想说的是,要理解你的答案中所发生的事情要困难得多,尽管它更高效、更快。
List1.Items.AddRange(
Enumerable.Range(1, Integer.Parse(Me.txtInput.Text)).
Select(Of String)(
Function(i)
Return Enumerable.Range(2, i - 1).
Select(Of String)(Function(i1) i1.ToString()).
Aggregate(Of String)("1", Function(s1, s2) s1 & " " & s2)
End Function).ToArray())
List1.Items.Clear()
Dim i, j, z As Integer
Dim x, a As String
z = TxtInput.Text
For i = 1 To z
For j = 1 To i
x = Convert.ToString(j)
a = a & " " & x
Next
List1.Items.Add(a)
a = ""
Next