Java “for循环”范围的差异

Java “for循环”范围的差异,java,Java,我是一名java初学者,现在正在处理循环。在处理for循环时,我遇到了这样一种情况:当代码使用大括号和不使用大括号执行时,我得到了不同的结果 你能给我解释一下获得不同输出的原因吗???没有大括号,你只是在for后面加上了语句。使用大括号,您将包括其中包含的所有内容以及该范围内的所有内容 例如: for (int i = 0; i < 10; i++) System.out.println("Ten");// Will print "Ten", 10 times. Syste

我是一名java初学者,现在正在处理循环。在处理for循环时,我遇到了这样一种情况:当代码使用大括号和不使用大括号执行时,我得到了不同的结果


你能给我解释一下获得不同输出的原因吗???

没有大括号,你只是在for后面加上了语句。使用大括号,您将包括其中包含的所有内容以及该范围内的所有内容

例如:

for (int i = 0; i < 10; i++)
    System.out.println("Ten");// Will print "Ten", 10 times.
    System.out.println("Once");// Will print "Once", 1 time.
for (int i = 0; i < array.length; i++) System.out.println(array[i]);
如果包含大括号,它将同时打印它们10次

不带大括号:循环中只有下一条语句。 使用大括号:大括号中的所有内容都在循环中。 Java代码中的空白只是为了便于阅读代码。编译器完全忽略缩进

请参阅此代码:

for (int i = 0; i < 3; i++)
    System.out.println("Hello"); System.out.println("World");
同样的产量将由

for (int i = 0; i < 3; i++) System.out.println("Hello");
    System.out.println("World");

您的问题是循环中有多个语句。使用大括号,这些语句在循环的每次迭代中执行一次。没有大括号,每次迭代都会执行第一条语句,其余语句在循环完成后执行

不带大括号:

for (int i = 0; i < 10; i++)
System.out.println("Inside for loop");
System.out.println("Outside for loop");
带支架

for (int i = 0; i < 10; i++){
System.out.println("Inside for loop");
System.out.println("Also inside for loop");
}

以下示例演示了您的问题:

这将循环第一行100次,但只运行其他两行作为常规打印

for(int i = 0; i < 100; i++)
    System.out.println("Test Print 1");
    System.out.println("Test Print 2");
    System.out.println("Test Print 3");
这将打印所有行100次

for(int i = 0; i < 100; i++){
    System.out.println("Test Print 1");
    System.out.println("Test Print 2");
    System.out.println("Test Print 3");
}

你的问题是关于语言的语法

,for语句的基本语法为:

for ( ForInit ; Expression ; ForUpdate ) Statement
例如:

for (int i = 0; i < 10; i++)
    System.out.println("Ten");// Will print "Ten", 10 times.
    System.out.println("Once");// Will print "Once", 1 time.
for (int i = 0; i < array.length; i++) System.out.println(array[i]);
因此,如果你有:

for (int i = 0; i < array.length; i++) Statement1; Statement2;
由于空格不重要,您可以用可读性更好的方式编写它,如下所示:

for (int i = 0; i < array.length; i++) {
   stmt1_1;
   stmt1_2;
}
Statement2;

你能给我们两个代码吗?你的问题肯定是因为当你不使用大括号时,循环中有多行没有大括号,它只执行下一行。如果有两行依赖于该条件,则当该条件为真时,将只运行第一行。对于循环,同样的事情也会发生。只有第一行是循环的。大括号将多个语句粘在一起作为一个块。回到C时代,经常会出现忘记大括号的错误,一些样式指南明确规定必须使用大括号;不要使用多行无括号fors或多行无括号任何东西您应该用语句替换行,因为第一行中的第二条语句也不是循环的一部分。@jlordo啊,是的,这实际上是一个很好的观点。将更新。谢谢,台词没关系。相关的是语句。+1指出for语句总是只重复一条语句,{…}是一条语句。其他许多答复表明,这里有两种情况;i、 例如,for语句可以重复一条语句或一个块,而忽略了该块仍然是由多条语句构建的单个语句这一点。