1

我正在学习JS。书中的练习是使用for关键字而不是while. While始终是“原始示例”。所有类型的示例都将使用循环。

此示例将符号打印#成线条,看起来像三角形:

#
##
###
####
#####
######  
#######  
########  
#########  
##########

[代码 #1]使用while

var line = "";
var counter = 0;
while (counter < 10) {
    line = line + "#";
    print(line);
    counter = counter + 1;
}

[代码 #2]相同,使用for

var line = "";
for (var counter = 0; counter < 10; counter = counter + 1) {
  line = line + "#";
  print(line);
}

在这两种情况下都使用大括号。



在其他示例中,我将提高 2 的 10 次方。
[代码 #3]通过while

var result = 1;
var counter = 0;
while (counter < 10) {
  result = result * 2;
  counter = counter + 1;
}
show(result);

[代码 #4]和同样的for

var result = 1;
for (var counter = 0; counter < 10; counter = counter + 1)
  result = result * 2;
show(result);  


  • 为什么在 [code #4] 中不使用大括号并且没有它们也能正常工作?

  • 当我不使用大括号时,为什么 [code #2] 只打印三角形的最后一行(##########)?当我使用大括号时,它会根据需要打印整个三角形。

4

1 回答 1

4

始终使用大括号。

当您不使用大括号时,JS 引擎会自动将下一条语句粘贴for在它之后以补充它,因此清单#2 中的代码实质上变为:

var line = "";
for (var counter = 0; counter < 10; counter = counter + 1) {
  line = line + "#";
}
print(line);

并且只打印最后一行。

if为,else和, 也指定了相同的行为while

于 2013-08-18T15:47:28.290 回答