0

我可以在VB中用相同的计数器做嵌套循环吗

代码是这样的

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

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

VB 只是不允许我再次在嵌套循环中使用 a
错误:...变量 'a' 已被独立循环使用。

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

4

5 回答 5

1

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

于 2013-09-26T13:18:46.917 回答
1

什么将第二个FOR循环更改为WHILE循环?

For a As Integer = 1 to Console.ReadLine
    Do While a <=5
            Console.WriteLine("Line: " & a)
            Exit Do    
    Loop
Next
于 2013-09-26T11:43:33.637 回答
0

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

For a As Integer = 1 to Console.ReadLine
    For b As Integer = a to 5
        Console.WriteLine("Line: " & a)
    Next
Next
于 2013-09-26T11:31:26.780 回答
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
于 2013-09-26T11:34:58.123 回答
0

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

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

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

于 2013-09-26T12:04:46.727 回答