Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中不带大括号的for循环_Java_For Loop_Curly Braces - Fatal编程技术网

java中不带大括号的for循环

java中不带大括号的for循环,java,for-loop,curly-braces,Java,For Loop,Curly Braces,我想知道为什么下面这两个代码给出不同的结果 for(i = 1, j = 0; i < 10; i++) { j += i; System.out.println(i); } 在第二个示例中,输出在for循环之外。没有花括号的for循环只包含以下语句。这是因为在您的情况下,迭代的默认范围是它后面的唯一一行,相当于- for(i=1, j=0;i<10;i++) { j += i; } System.out.println(i); for(i=1,j=0;i

我想知道为什么下面这两个代码给出不同的结果

for(i = 1, j = 0; i < 10; i++) {
    j += i;
    System.out.println(i);
}

在第二个示例中,输出在for循环之外。没有花括号的for循环只包含以下语句。

这是因为在您的情况下,迭代的默认范围是它后面的唯一一行,相当于-

for(i=1, j=0;i<10;i++) {
    j += i;
}
System.out.println(i);

for(i=1,j=0;i不带大括号的循环仅适用于下一条语句

因此:


for(i=1,j=0;i第一条语句包含一个代码块。一个代码块作为一个单元处理

要创建代码块,应该在大括号之间插入语句

如果没有指定代码块,循环表达式和条件表达式只处理它们下面的第一条语句

因此:

// Both statements handled 10 times
for(i = 1, j = 0; i < 10; i++) {
    j += i;
    System.out.println(i);
}

// Only the first statement handled 10 times, the second one is out of scope of the loop
for(i = 1, j = 0; i < 10; i++)
    j += i;
System.out.println(i);
//这两条语句都处理了10次
对于(i=1,j=0;i<10;i++){
j+=i;
系统输出打印LN(i);
}
//只有第一条语句处理了10次,第二条语句超出了循环的范围
对于(i=1,j=0;i<10;i++)
j+=i;
系统输出打印LN(i);
循环、循环和语句(忽略
else
)都控制一个语句

用于(
[ForInit]
[Expression]
[ForUpdate]
语句

for(
{VariableModifier}unantype VariableDeclaratorId
表达式
语句

while(
Expression
语句

if(
Expression
语句

该语句可以是包含多个语句的大括号
{}

所以,这个代码是一样的:


对于(i=1,j=0;对于老年人和新手,使用大括号总是最安全的。此外,在嵌套的情况下。否则愚蠢的“此处可能出错”调试等。
for(i=1, j=0;i<10;i++) {
    j += i;
}
System.out.println(i);
for(i=1, j=0;i<10;i++){
    j += i;
    System.out.println(i);
}
 for(i=1, j=0;i<10;i++)
    j += i;
System.out.println(i);
 for(i=1, j=0;i<10;i++){
        j += i;
 }
    System.out.println(i);
// Both statements handled 10 times
for(i = 1, j = 0; i < 10; i++) {
    j += i;
    System.out.println(i);
}

// Only the first statement handled 10 times, the second one is out of scope of the loop
for(i = 1, j = 0; i < 10; i++)
    j += i;
System.out.println(i);