java - 花括号使for循环只运行一次?
问题描述
假设我有一个伪代码和 sum = 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 (int i=1; i<=3; ++i)
sum = sum + i;
return sum;
这是因为上面的代码片段都等价于以下代码:
for (int i=1; i<=3; ++i) {
sum = sum + i;
}
return sum;
循环体for
要么是一条语句,要么是一个块。大多数语言不认为缩进级别很重要。(Python 是一个明显的例外。)
相反,以下代码执行循环的return
每一次循环,而不是在循环完成后执行:
for (int i=1; i<=3; ++i) {
sum = sum + i;
return sum;
}
好吧,当然,它永远不会到达循环的第二遍。
推荐阅读
- django - 如何从变量中动态调用 Django 模板标签
- mysql - 对多列主键使用 IN
- regex - 如何在正则表达式中排除特定的uri
- android - 使用包管理器禁用包与禁用活动之间的区别
- java - 我怎么知道是什么引发了异常?
- go - AM2320 传感器:CRC 不匹配,来自传感器的 CRC(0)
- r - In R distance between two sentence: Word-level comparison by minimum edit distance
- java - 按双精度和字符串排序arraylist
- android - Room DB - 支持自定义排序规则(ICU 库)
- java - 如何在 Android 上使用外部库使用的 Apache http-client 4.5.x