gpt4 book ai didi

javascript - FOR 类型循环中的大括号,意外地改变了代码的结果

转载 作者:行者123 更新时间:2023-11-30 10:28:34 25 4
gpt4 key购买 nike

我正在学习 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);

并且只打印最后一行。

ifelsewhile 也指定了相同的行为。

关于javascript - FOR 类型循环中的大括号,意外地改变了代码的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com