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);