Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 花括号使循环只运行一次?_Java_C++_C - Fatal编程技术网

Java 花括号使循环只运行一次?

Java 花括号使循环只运行一次?,java,c++,c,Java,C++,C,假设我有一个伪码,和=3 for i = (1 to 3) sum = sum + i return sum 这将返回9,因为3+1=4,4+2=6,6+3=9 但在这样做的时候 for i = (1 to 3) { sum = sum + i return sum } 返回的总数是4? 为什么花括号使for循环只运行一次?如果您有以下C代码: for (int i=1; i<=3; ++i) sum = sum + i; return s

假设我有一个伪码,和=3

for i = (1 to 3)
    sum = sum + i
    return sum
这将返回9,因为3+1=4,4+2=6,6+3=9


但在这样做的时候

for i = (1 to 3) {
    sum = sum + i
    return sum
}
返回的总数是4?
为什么花括号使for循环只运行一次?

如果您有以下C代码:

for (int i=1; i<=3; ++i)
   sum = sum + i;
   return sum;

当然,它永远不会到达循环的第二个过程。

在第二个示例中,您将在for循环体中包含一个return语句,从而在第一次迭代中返回。在第一个示例中,循环中只执行加法/赋值语句,然后返回结果。

对第一个循环的缩进是错误的。将两者展开,就会清楚地看到发生了什么:

sum = sum + 1
sum = sum + 2
sum = sum + 3
return sum
这个函数将6加到
sum
中,然后返回它

sum = sum + 1
return sum
sum = sum + 2
return sum
sum = sum + 3
return sum
这个函数将1加到
sum
中,然后返回它。
return
语句结束函数的执行(即使后面有更多语句,或者在循环中)

运行
sum=sum+i
3次。然后执行返回和,因为如果循环构造没有大括号,它将只运行下一个操作

这里


每个循环迭代都会尝试执行
返回和
,只有第一次迭代才会真正执行。下一步不会执行ITerations,因为
return
将中断循环。

您使用的是哪个伪代码编译器?因为循环首先终止iteration@Martin詹姆斯,这是个测验,我搞错了…@truthseek这是花括号的属性吗?它只为循环运行一次?没有花括号,只有
for
后面的第一行是循环体的一部分。花括号使括号内的所有线成为循环体的一部分。
for (int i=1; i<=3; ++i) {
   sum = sum + i;
   return sum;
}
sum = sum + 1
sum = sum + 2
sum = sum + 3
return sum
sum = sum + 1
return sum
sum = sum + 2
return sum
sum = sum + 3
return sum
    sum = sum + i
    return sum
for i = (1 to 3) {
    sum = sum + i
    return sum
}