【问题标题】:javascript for loop: issuesjavascript for 循环:问题
【发布时间】:2020-09-15 04:04:49
【问题描述】:

我遇到了这个问题:编写一个程序,使用 console.log 打印从 1 到 100 的所有数字,但有两个例外。对于可被 3 整除的数字,打印“Fizz”而不是数字,对于可被 5(而不是 3)整除的数字,打印“Buzz”。当你有这个工作时,修改你的程序,为可以被 3 和 5 整除的数字打印“FizzBu​​zz”(对于只能被其中一个整除的数字,仍然打印“Fizz”或“Buzz”)。

我尝试用下面的代码解决它:

for(let i = 1; i <= 100; i++){
    if(i % 3 ===0) {
        console.log("fizz");
    } else if ( i % 5 === 0 ) {
        console.log("buzz");
    } else if (i % 5 === 0 && i % 3 === 0) {
        console.log("fizzbuzz");
    } 
    console.log(i);
}

谁能告诉我我做错了什么,因为我没有得到结果

【问题讨论】:

  • FizzBu​​zz 问题的要点是,前两个条件是互斥的,而第三个则不是。所以ifs 的顺序很重要。
  • 另外,您说您需要为可被 3 和 5 整除的数字打印 FizzBu​​zz,但如果该数字可被 3 整除,您的 if 条件将评估为 true 5,因此您应该将最后一个 if 更改为:if (i % 5 === 0 &amp;&amp; i % 3 === 0),但首先更改 if 语句的顺序,如 PM 77-1 所说

标签: javascript for-loop if-statement


【解决方案1】:

在您的条件下,i = 15 应该返回 fizzbuzz,但它返回 fizz,因为 15 可以除以 3 和 5,所以您首先条件 i % 3 === 0 得到 true,所以它返回 fizz。如果您的第一个条件是i % 3 === 0 &amp;&amp; i % 5 === 0,那么i = 15 应该返回fizzbuzz

for(let i = 1; i <= 100; i++){
    if (i % 5 === 0 && i % 3 === 0) {
        console.log("fizzbuzz");
    } else if(i % 3 ===0) {
        console.log("fizz");
    } else if ( i % 5 === 0 ) {
        console.log("buzz");
    }
    console.log(i);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多