具有相同变量的嵌套循环

时间:2013-09-26 11:27:46

标签: vb.net loops for-loop

我可以在VB中使用相同的计数器进行嵌套循环

代码就像这样

For a As Integer = 1 to Console.ReadLine
    For a = 1 to a
        Console.WriteLine("*")
    Next
    Console.WriteLine()
Next

该程序设计用于绘制*的三角形,只有一个变量

VB只是禁止我再次使用嵌套循环
错误:......变量'a'由独立循环使用。

我有自己的用法,只能使用1个变量。

5 个答案:

答案 0 :(得分:1)

将第二个FOR循环更改为WHILE循环的内容是什么?

For a As Integer = 1 to Console.ReadLine
    Do While a <=5
            Console.WriteLine("Line: " & a)
            Exit Do    
    Loop
Next

答案 1 :(得分:1)

这是一个不同的想法。您可以考虑将整数变量拆分为2部分16位部分,将用户输入保持在高16位,将当前迭代值保存在低16位(您需要使用WHILE而不是{ {1}})。

答案 2 :(得分:0)

事实上,如果我理解的话,你需要的是以a的值开始你的内部计数器。你正在做的是从1开始创建另一个循环。

For a As Integer = 1 to Console.ReadLine
    For b As Integer = a to 5
        Console.WriteLine("Line: " & a)
    Next
Next

答案 3 :(得分:0)

您不能在同一范围内声明具有相同名称的另一个变量。但内循环与外循环的范围相同。这就是你得到编译器错误的原因。

您可以使用其他名称:

Dim i As Int32 
If Int32.TryParse(Console.ReadLine, i) AndAlso i > 0 Then
    For a As Integer = 1 To i
        For aa = 1 To i
            Console.WriteLine("Line: {0} {1}", a, aa)
        Next
    Next
End If

答案 4 :(得分:0)

要绘制三角形,如您所述,您需要两个变量,如下所示:

For a As Integer = 1 to Console.ReadLine
    For b As Integer = 1 to a
        Console.Write("*")
    Next
    Console.WriteLine()
Next

如果你在内部循环中使用了相同的变量,内部循环将改变变量的值,这在大多数情况下不会是你想要的,并且在所有情况下都会令人难以置信地混淆。因此,VB强制您在每个嵌套的For循环中使用不同的迭代器。