0

1 ~ 20 が 3、5、またはその両方で割り切れる場合にコンソール ログ ステートメントを出力するプログラムを取得しようとしています。これは私が使用しているものですが、両方の番号をチェックしません....

for (i = 1; i < 21 ; i++) {
    if (i % 3 === 0) {
        console.log("Fizz");
    } else if (i % 5 === 0) {
        console.log("Buzz");
    } else if ((i % 5)&&(i % 3) === 0) {
        console.log("FizzBuzz");
    } else {
        console.log(i);
    }
}

これを検索してみましたが、私の検索条件がうまく記載されていなかったようです。君たちありがとう!

4

4 に答える 4

2

3 番目の比較でタイプミスがあります。これは次のようになります。

else if ((i % 5) === 0 &&(i % 3) === 0) 

また、その比較は最初にする必要があります。そうしないと、他の 2 つによって短絡されます。

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

フィドル

于 2013-07-25T21:29:45.060 に答える
1

まず両方チェック

for (i = 1; i < 21 ; 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");
    }else {
        console.log(i);
    }
}
于 2013-07-25T21:30:52.520 に答える
0
 for (i = 1; i < 21 ; i++) {
       if ((i % 5)==0 && (i % 3) == 0) {
           console.log("Fizz"); 
       } else if (i % 5 === 0) { 
           console.log("Buzz"); 
       } else if (i % 3 === 0)  { 
           console.log("FizzBuzz"); 
       } else { 
           console.log(i); 
       }

両方が適用可能かどうかを確認するものを最初にする必要があります。そうしないと、満たされることはありません。

そして、その条件を次のように評価する必要があります: (i % 5) == 0 && (i % 3) == 0

于 2013-07-25T21:32:49.370 に答える