在使用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
我不明白为什么,如果我否定嵌套的括号,我会得到预期的答案,但我不确定为什么与它们不起作用。
答案 0 :(得分: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
}
答案 1 :(得分:0)
从第一个循环中取出Console.WriteLine("0");
。
答案 2 :(得分: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");
}
答案 3 :(得分:0)
这可以用更短的方式完成:
for(int i = 5; i > 0; --i)
Console.WriteLine(new String(' ', i) + 0);