javascript - JavaScript 中的 FizzBu​​zz : the code won't execute or print at all

标签 javascript fizzbuzz

一直在解决 FizzBu​​zz 问题,我想知道为什么以下代码不会执行,没有任何内容打印到控制台。

var i = 0;
while (i = 0, i < 100, i++ ) {
    if ( i % 3 === 0) {
        console.log("Fizz");
    } else if ( i % 5 === 0) { 
        console.log("Buzz");
    } else {
        console.log(i);
    } 
}

我错过了什么?

最佳答案

您使用了错误的循环结构。它应该是 for,而不是 while。另请注意,子句之间是分号,而不是逗号:

for (i=0; i < 100; i++) {

你拥有的是这样的:

while (i = 0, i < 100, i++) {

逗号只计算左侧,丢弃结果,然后计算右侧。因此,将 i 设置为 0(并丢弃赋值返回的零值),测试 i 是否小于 100(但对由赋值返回的真实值不执行任何操作)比较),并使用最后一个表达式 (i++) 的值作为 while 的循环条件。由于 i 为 0(这是假值),因此循环体永远不会执行。

请注意,如果您使用 ++i 来代替,则在 for 情况下没有什么区别,但您的 while 版本会永远循环而不是根本不运行,因为第一次测试真实性时,i 已经增加到 1。

关于javascript - JavaScript 中的 FizzBu​​zz : the code won't execute or print at all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27130412/

相关文章:

javascript - backbone.js 缓存集合和刷新

ruby - Ruby 中的 Fizz Buzz for dummies

go - 此 Golang 程序中 map 范围内的顺序行为

javascript - 从 1 到 100,如果是 3 的倍数则打印 "ping",如果是 5 的倍数则打印 "pong",否则打印数字

c - 为什么不在 C 中为 FIZZBUZZ 使用 while 循环?

javascript - 当没有定义默认导出时,import Module from 'module' 会导入什么?为什么它与 import * as Module 不同?

javascript - Firefox 插件仅在调试状态下执行

javascript - 使用 javascript 聚焦字段时显示 Android 软键盘

javascript - 如何使用 CSS 在 HTML 中将一组对象居中?

CodeEval 提交,程序在我的电脑上运行,但在我提交时却不行。 C