0

使用 C# 创建嵌套 for 循环时,我似乎遇到了问题。当嵌套循环有大括号时,结果不是预期的,而有大括号的结果是预期的。

编码:

int i, j, k;

for(i=1; i<=5;i++) // this loops 5 times. 
{
   for (j = 5; j > i; j--)
   {
      Console.Write(" ");
      Console.WriteLine("0");
   }
}

预期的:

    0
   0
  0
 0
0

结果:

  0
  0
  0
  0
  0
  0
  0
  0
  0
  0
  0

我不明白为什么,如果我否定嵌套的大括号,我会得到预期的答案,但我不确定为什么对它们不起作用。

4

4 回答 4

3

你把大括号放在错误的地方,试试这个:

 int i, j, k;

 for(i=1; i<=5;i++) // this loops 5 times. 
 {
    for (j = 5; j > i; j--)
    {
        Console.Write(" ");
    }

    Console.WriteLine("0");
 }

如果你不放大括号,它会起作用,因为只有语句下面的句子for在循环中

 for(i=1; i<=5;i++) // loop A
 {
    for (j = 5; j > i; j--)  // loop B
        Console.Write(" ");  // in scope of loop B
    Console.WriteLine("0");  // in scope of loop A
 }
于 2013-10-18T15:56:32.300 回答
0

把它Console.WriteLine("0");从第一个循环中取出。

于 2013-10-18T15:56:58.717 回答
0

这可以以更短的方式完成:

for(int i = 5; i > 0; --i)
    Console.WriteLine(new String(' ', i) + 0);
于 2013-10-18T16:07:50.190 回答
0

因为 Console.WriteLine("0"); 会给回报。

尝试这个

   for(i=1; i<=5;i++) // this loops 5 times. 
    {
        for (j = 5; j > i; j--)
        {
            Console.Write(" ");
        }
        Console.WriteLine("0");
    }
于 2013-10-18T15:59:58.337 回答