3

私はここで複数の方法で初心者なので、気楽にやってください:)

これは、JavaScriptを使用して解決することを任された問題です。

1 から 20 までの数字を出力します。規則: 3 で割り切れる数については、"Fizz" を出力します。5 で割り切れる数については、「Buzz」と出力します。3 と 5 の両方で割り切れる数については、コンソールに「FizzBu​​zz」と出力してください。それ以外の場合は、番号を印刷してください。

これがそれに近づくための私の最初の試みでした:

 var numberArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];

for(var i = 0; i < numberArray.length; i++){
    if(i % 3 === 0 && i % 5 === 0){
       console.log("FizzBuzz"); 
    }
    else if(i % 3 === 0 && i % 5 !== 0){
        console.log("Fizz");
    }
    else if(i % 3 !== 0 && i % 5 === 0){
        console.log("Buzz");
    }
    else {
        console.log(numberArray[i]);
    }
}

これにより、次の誤った値が返されました。

フィズバズ 2 3 フィズ 5 バズ フィズ 8 9 フィズ バズ 12 フィズ 14 15 フィズバズ 17 18 フィズ 20

次に、DIDが正しい答えになる別のアプローチを取りました。

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

fizBuzz();

最初のアプローチのどこが間違っていたのかを理解するのを手伝ってくれる人はいますか? これは本当に私を悩ませています:)

4

1 に答える 1

4

問題は、numberArray[i] (1 から始まる) ではなく、i (0 から始まる) の可分性をチェックしていたことです。

于 2013-10-12T17:21:41.447 に答える