jst*_*one -4 javascript while-loop
我正在创建一个基本的while循环,由于某种原因它无限运行.我想知道它在var"days"的长度上没有停止.
var day1 = 1
var days = 365
while (day1 <= days) {
day1++;
if (day1 = 358) {
console.log('today is christmas');
} else {
console.log("today is day " + day1);
}
}
Run Code Online (Sandbox Code Playgroud)
原因是因为您正在进行赋值(=)而不是比较(===),并且变量的值day1永远保持为358.你也可能已经注意到它记录"今天是圣诞节"总是因为赋值而且结果是一个非零值,这使得它总是真正的.
更改
if (day1 = 358) {
Run Code Online (Sandbox Code Playgroud)
至
if (day1 === 358) {
Run Code Online (Sandbox Code Playgroud)
只是为了补充你也可以使用==它做类型强制(在你的情况下不需要你)在比较期间,但是===是严格的相等比较,并且在大多数情况下建议使用.
当你说
if (day1 = 358) {
Run Code Online (Sandbox Code Playgroud)
你是不是比较值,但是你要分配358到day1每一个迭代.所以,价值永远不会改变.这就是为什么它会遇到无限循环.要解决这个问题,
像这样使用比较运算符
if (day1 === 358) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
172 次 |
| 最近记录: |