0

すぐにわかるように、これは for ループであり、ここにいくつかの if 条件があります (「if 条件」と言うのはそれですか ???)。実際に 2 つの質問があります。

私はCodeAcademyに取り組んでおり、これを行うように求められました:

Print out the numbers from 1 - 20.
The rules:
For numbers divisible by 3, print out "Fizz".
For numbers divisible by 5, print out "Buzz".
For numbers divisible by both 3 and 5, print out "FizzBuzz" in the console.
Otherwise, just print out the number.**

これは私がこれまで行ってきたことであり、正しく機能していると思いますし、一般的には正しいと思いますが、CodeAcademy はそうではないと言っています。私のコードに何か問題があるかどうか、またはこれが彼らが要求していることを正確に行うための別の方法にすぎないかどうかを誰かが知っているかどうかを知りたいです(上記のルールを参照してください)。

また、2 番目の質問ですが、これは私の興味深い質問です。今のところ、例として 15 を取り上げます。JavaScript は 15 に遭遇したときにどのように考えますか? 15 が 3 で割り切れ、残りが 0 である場合、console.log("Fizz") ではなく、最後の一番下のコードと console.log までずっと行く必要があります。 (「フィズバズ」); 誰かが私にこれを説明できますか、お願いします:)

 for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
        if (iterator % 3 === 0) {
            console.log("Fizz");

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

        } else if (iterator % 3 === 0) {
            if (iterator % 5 === 0) {
                console.log("FizzBuzz");
            }
        } else {
            console.log(iterator);
        }

    }
4

2 に答える 2

2

私はあなたのコードをテストしましたが、あなたが説明した出力が得られません.15は「FizzBu​​zz」を正常に印刷しています. 「Fizz」と表示される 15 という期待される結果が得られます。15 の "FizzBu​​zz" を出力する最後の if ステートメントに到達する機会がないため、正しく機能していません。

for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {
    if (iterator % 3 === 0) {
        if (iterator % 5 === 0) {
            console.log("FizzBuzz"); //divisible by 3 and 5
        } else {
            console.log("Fizz"); //only divisible by 3
        }
    } else if (iterator % 5 === 0) {
        console.log("Buzz"); //only divisible by 5
    } else {
        console.log(iterator); //not divisible by 3 or 5
    }
}
于 2013-03-08T16:59:42.993 に答える
-1

それはあなたに解決策を与えるかもしれません:コードを再配置するだけです:

for (var iterator = 1; iterator <= 20; iterator = iterator + 1) {

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

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

    } else {
        console.log(iterator);
    }

}

最初に 3 と 5 の両方で割り切れる条件を調べます。その後、3 と 5 を別々に調べます。

于 2013-03-08T17:03:40.290 に答える