我正在学习 JS。书中是使用 for
关键字而不是 while
编写代码的练习。 While
始终是“原始示例”。所有类型的示例都将使用循环。
这个例子会将 #
符号打印成三 Angular 形的行:
#
##
###
####
#####
######
#######
########
#########
##########
[code #1] 使用 while
:
var line = "";
var counter = 0;
while (counter < 10) {
line = line + "#";
print(line);
counter = counter + 1;
}
[code #2] 同样,使用 for
:
var line = "";
for (var counter = 0; counter < 10; counter = counter + 1) {
line = line + "#";
print(line);
}
在这两种情况下都使用大括号。
在其他示例中,我将计算 2 的 10 次方。
[code #3] 通过 while
:
var result = 1;
var counter = 0;
while (counter < 10) {
result = result * 2;
counter = counter + 1;
}
show(result);
[code #4] for
也一样:
var result = 1;
for (var counter = 0; counter < 10; counter = counter + 1)
result = result * 2;
show(result);
为什么 [代码 #4] 中没有使用大括号,但没有大括号也能正常工作?
当我不使用大括号时,为什么 [code #2] 只打印三 Angular 形的最后一行 (##########)?当我使用大括号时,它会根据需要打印整个三 Angular 形。
最佳答案
始终使用大括号。
当你不使用大括号时,JS 引擎会自动粘合 for
之后的下一个语句来补充它,因此 list #2 中的代码基本上变成了:
var line = "";
for (var counter = 0; counter < 10; counter = counter + 1) {
line = line + "#";
}
print(line);
并且只打印最后一行。
if
、else
和 while
也指定了相同的行为。
关于javascript - FOR 类型循环中的大括号,意外地改变了代码的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300782/