关于这段代码,有一件事让我烦恼
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++)
if(i == c)
System.out.print("*");
else
System.out.print("-");
System.out.println(".");
}
我知道内部for循环必须在外循环再次循环之前完成。为什么System.out.println(“。”)只在内部循环中出现一次,即使它应该循环多次?
答案 0 :(得分:2)
因为它位于内部for循环的一侧,所以在循环体周围使用括号以获得更好的可读性并避免这种混淆
答案 1 :(得分:2)
该行
System.out.println(".");
在嵌套for
之外。如果你想要它,你应该使用括号{}
:
for (int i = 0; i < 10; i++) {
for (int c = 0; c < 10; c++) {
if (i == c) {
System.out.print("*");
} else {
System.out.print("-");
}
System.out.println(".");
}
}
请记住,如果不放置括号{}
,for
循环的主体将只是一个语句(for
声明旁边的语句)。< / p>
答案 2 :(得分:1)
不确定您的期望,但您的代码相当于:
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++) {
if(i == c) {
System.out.print("*");
} else {
System.out.print("-");
}
}
System.out.println("."); // This is OUTSIDE the inner loop.
}
故事的道德:如有疑问,请使用括号。
答案 3 :(得分:1)
您的最终陈述是外部循环的一部分。
的System.out.println( “”);
由于内部循环中只有一个if-else语句,因此不需要大括号。 始终使用大括号来定义循环的范围并为了便于阅读。
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++) {
if(i == c) {
System.out.print("*");
}
else {
System.out.print("-");
}
}
System.out.println(".");
}
答案 4 :(得分:1)
内循环必须完成所有的传递/次数,而不是仅在再次运行父循环之前完成一次。
答案 5 :(得分:1)
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++)
{
if(i == c)
System.out.print("*");
else
System.out.print("-");
}
System.out.println(".");//The . would get printed 10 times as it is inside first for loop.
}
答案 6 :(得分:1)
这种混乱是因为没有 Curly Braces 。你的代码没有任何错误。令你困惑的最后一个System.out.println(".");
是外循环的一部分。所以你的代码等同于:
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++) {
if(i == c){
System.out.print("*");
}
else{
System.out.print("-");
}
System.out.println(".");
}
}
答案 7 :(得分:0)
代码中的Sysout属于外部循环,而不属于内部循环。
如果你没有在你的for循环之后放置大括号,那么它只需要一个语句。
这适用于你的情况。
for (int i = 0; i<10; i++)
{
for (int c = 0; c < 10; c++)
{ if(i == c)
System.out.print("*");
else
System.out.print("-");
System.out.println(".");}
}
}