Potentially dangerous code below, line 2 Repeat: POTENTIALLY DANGEROUS CODE BELOW
var history = "";
for (start = 3; start = 1000; start += 1){
if(start % 5 == 0 || start % 3 == 0)
history += start + " "; }
好的,这是我第四次将JavaScript代码放入浏览器中。这让我的电脑震惊了。这些惊恐发作是否会破坏她的心脏?在我继续学习和练习JavaScript时,我在哪里可以了解可能会破坏我的计算机的所有废话?我正在寻找一份详尽的清单。
答案 0 :(得分:7)
您的循环:for (start = 3; start = 1000; start += 1){
for( ; ; )
循环的第二部分是条件测试。循环将继续,直到第二部分评估为false 。要不创建无限循环,请将代码更改为:
for (var start = 3; start < 1000; start += 1){
注意:start+=1
等于start++
。如果您需要紧凑的代码,可以将+=1
替换为++
。
三部分for
- 循环的概述,for(initialise; condition; increment)
:
initialise
- 创建变量(允许为空)condition
- 一旦此表达式求值为false,循环将停止increment
- 此表达式在循环结束时执行
始终检查无限循环:确保条件能够评估为false
。常犯的错误:
i--
会减少计数器,因此i<100
始终为真(除非变量i
初始化为100)for(var i=0,j=0; i<100; j++)
(i
不会增加)答案 1 :(得分:4)
您只需要正确地学习和阅读它。您的循环条件start = 1000
将始终评估为true
,这就是循环永远不会终止的原因(赋值返回已分配的值,而0
以外的任何其他数字的计算结果为{{1} })。
MDN JavaScript Guide是学习JavaScript的绝佳资源。特别针对这种情况:
for循环重复,直到指定的条件计算为false。 JavaScript for循环类似于Java和C for循环。 for语句如下所示:
true
执行for循环时,会发生以下情况:
- 执行初始化表达式
for ([initialExpression]; [condition]; [incrementExpression]) statement
(如果有)。此表达式通常初始化一个或多个循环计数器,但语法允许表达任何程度的复杂性。该表达式也可以声明变量。- 评估
initialExpression
表达式。如果condition
的值为true,则执行循环语句。如果condition
的值为false,则condition
循环终止。如果完全省略for
表达式,则假定条件为真。- 声明执行。要执行多个语句,请使用块语句(
condition
)对这些语句进行分组。- 更新表达式
醇>{ ... }
(如果有)执行,控制权返回步骤2.
正如其他人所说,它主要归结为尝试和错误....这是一种很好的学习方式。
答案 2 :(得分:1)
您的条件语句 start = 1000 将始终返回true。你无法找到这样的傻瓜证明清单,你必须自己从这些错误中吸取教训。
答案 3 :(得分:-1)
for (start = 3; start = 1000; start += 1)
你想要这个吗? (从3到1000)
for (start = 3; start <= 1000; start += 1)
在第一种情况下,你会坚持1000