【发布时间】:2016-07-19 07:32:19
【问题描述】:
var hash = "";
var count = 1;
var n = 3;
for (var pound = 1; pound <=7; pound ++)
{while (hash.length != count)
hash += "#";
hash += "\n";
count += n;
n ++;}
console.log(hash);
您好,我是 Javascript 的新手,对一般的编码也很陌生。我花了几个小时分析我上面的代码。顺便说一句,我在没有任何帮助的情况下生成了自己。我不会说我很自豪,因为我不知道它为什么或如何运作。我想我得到了工作背后的基本数学知识,当我在最后检查变量的值时,结果与我的计算相符。但我不知道究竟会发生什么。它使用“#”生成一个三角形。我已经尝试删除 For 循环以确切了解 while 循环在做什么,但我无法掌握它。请看一下。
首先,在第一个 For 循环中,进入 while 循环,hash.length 的值为 0。比较它来计数哪个 1,它们不匹配,所以下一行。添加“#”和“\n”后,hash.length 变为 2。但代码被读到最后,使得 var count 现在为 4,var n 也等于 4。
现在,下一个循环不会发生在 while 循环中,我自己也试过了。它回到 For 循环。检查“hash.length != count”的条件,这个条件仍然成立,因为 hash.length 是 2,count 现在是 4。由于它们不相等,在返回 For 循环之前不应该重复 while ?
【问题讨论】:
-
这看起来不像是有效的 javascript。至少,
for的左括号是无与伦比的。这不应该运行。 -
@Carcigenicate:有效。它执行。它只是格式错误。
-
@Amadan 哎呀!在移动应用上,for 循环的右端被切断,直到您滚动为止。
标签: javascript for-loop while-loop