javascript - 特殊情况添加if条件

标签 javascript

这是我的代码

for(var i = 1; i <= 20; i = i + 1)

if(i%3==0)  {
    console.log("Fizz");
}else if (i%5==0){
    console.log("Buzz");
} 
else {
    console.log(i);
}

答案是

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz
16
17
Fizz
19
Buzz

但是看看那个“15”...它写着“Fizz”,但它应该是“FizzBu​​zz”,因为它可以被 3 和 5 整除。哎呀! 如何为这种情况添加特殊条件

最佳答案

当您执行 if else if 时,您不会传入 else if 第一个条件得到验证。

这是解决您问题的可能解决方案(有很多,但没有一个非常优雅):

var special = false;
if (i%3==0) {
    console.log("Fizz");
    special = true
}
if (i%5==0){
    console.log("Buzz");
    special = true;
} 
if (!special) {
    console.log(i);
}

这是另一个:

var tolog = '';
if (i%3==0) {
    tolog += "Fizz";
}
if (i%5==0){
    tolog += "Buzz";
} 
console.log(tolog || i);

Demonstration

关于javascript - 特殊情况添加if条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099870/

相关文章:

javascript - 如何在页面加载后检查输入的正则表达式属性

javascript - 如何使用可能包含空单元格的 JSON 数据填充表格 (AngularJS)

javascript - 如何使用 jQuery 发布表单?

javascript - 功能上的多重 promise

javascript - 为什么 Angular View 中的数组表达式不起作用?

javascript - new 关键字在幕后做了什么?

javascript - 问题 bootstrap 3 Carousel 将高度更改为 0px,边距更改为 -.....px

javascript - 如何让 JQuery 库之间不发生冲突

javascript - 获取 Svg 中字符串的像素长度

Javascript:文本替换数组中的多个字符串?