在for循环C#中使用括号和不使用括号的区别
Difference between using brackets in for loop C# and not using it
以下代码的输出与第二个代码的输出不同
谁能解释一下这个问题?
代码 1:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
{
Console.Write('+');
Console.WriteLine();
}
}
if intInput is 4 Ouput is:
+
+
+
+
代码 2:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
Console.Write('+');
Console.WriteLine();
}
if intInput is 4 Ouput is:
+
++
+++
++++
我知道这行代码是如何工作的,但我不明白括号对这两种代码有什么区别?
循环有范围。如果不包括大括号,则只有第一行在循环中。如果你有大括号,里面的所有东西都在循环的范围内。
在这种情况下,第一个示例向控制台写入一个“+”,并在每次内部循环迭代时写入一个新行。
第二种情况,内层循环只在每次内层迭代时执行“+”的写法。外循环添加新行。
你的第二种情况实际上意味着:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
{
Console.Write('+');
}
Console.WriteLine();
}
缩进对编译器没有任何意义,它只对你有用
写的时候;
for(int j = 1; j <= i; j++)
{
Console.Write('+');
Console.WriteLine();
}
两条 Console
行都有效,直到 j
循环结束。
但是当你写
for(int j = 1; j <= i; j++)
Console.Write('+');
Console.WriteLine();
只有第一个Console
有效,直到j
循环结束。这就是为什么第二个等于;
for(int j = 1; j<=i; j++)
{
Console.Write('+');
}
Console.WriteLine();
如果循环中有一个语句,大括号可以省略。但是使用它们总是更好的方法。
阅读:Why is it considered a bad practice to omit curly braces?
如果在第二个循环中用 i 改变 1 那么它将同样工作
for (int j = **i**; j <= i; j++)
Console.Write('+');
Console.WriteLine();
以下代码的输出与第二个代码的输出不同 谁能解释一下这个问题?
代码 1:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
{
Console.Write('+');
Console.WriteLine();
}
}
if intInput is 4 Ouput is:
+
+
+
+
代码 2:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
Console.Write('+');
Console.WriteLine();
}
if intInput is 4 Ouput is:
+
++
+++
++++
我知道这行代码是如何工作的,但我不明白括号对这两种代码有什么区别?
循环有范围。如果不包括大括号,则只有第一行在循环中。如果你有大括号,里面的所有东西都在循环的范围内。
在这种情况下,第一个示例向控制台写入一个“+”,并在每次内部循环迭代时写入一个新行。
第二种情况,内层循环只在每次内层迭代时执行“+”的写法。外循环添加新行。
你的第二种情况实际上意味着:
for(int i = 1; i <= intInput; i++)
{
for(int j = 1; j<=i; j++)
{
Console.Write('+');
}
Console.WriteLine();
}
缩进对编译器没有任何意义,它只对你有用
写的时候;
for(int j = 1; j <= i; j++)
{
Console.Write('+');
Console.WriteLine();
}
两条 Console
行都有效,直到 j
循环结束。
但是当你写
for(int j = 1; j <= i; j++)
Console.Write('+');
Console.WriteLine();
只有第一个Console
有效,直到j
循环结束。这就是为什么第二个等于;
for(int j = 1; j<=i; j++)
{
Console.Write('+');
}
Console.WriteLine();
如果循环中有一个语句,大括号可以省略。但是使用它们总是更好的方法。
阅读:Why is it considered a bad practice to omit curly braces?
如果在第二个循环中用 i 改变 1 那么它将同样工作
for (int j = **i**; j <= i; j++)
Console.Write('+');
Console.WriteLine();