Java 花括号使循环只运行一次?
假设我有一个伪码,和=3Java 花括号使循环只运行一次?,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
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
}