QA@IT
«回答へ戻る

回答を投稿

(個人的にこの switch の使い方は好みではありませんが)

case で true/false と評価される値を書いているので switch は true にする必要があります。

var i;
for(i=1; i<100; i++){
    switch(true){
        case (i%3 == 0):
            document.write(i + "is Fizz.<br>");
            break;

        case (i%5 == 0):
            document.write(i + "is Buzz.<br>");
            break;

        case (i%15 == 0):
            document.write(i + "is FizzBuzz.<br>");
            break;
    }
}

ただし、これだと 15 で割り切れる時に一番目の case にマッチしてしまうので、次のように順番を入れ替える必要があります。

var i;
for(i=1; i<100; i++){
    switch(true){
        case (i%15 == 0):
            document.write(i + "is FizzBuzz.<br>");
            break;

        case (i%3 == 0):
            document.write(i + "is Fizz.<br>");
            break;

        case (i%5 == 0):
            document.write(i + "is Buzz.<br>");
            break;
    }
}
(個人的にこの switch の使い方は好みではありませんが)

case で true/false と評価される値を書いているので switch は true にする必要があります。

```js
var i;
for(i=1; i<100; i++){
    switch(true){
        case (i%3 == 0):
            document.write(i + "is Fizz.<br>");
            break;

        case (i%5 == 0):
            document.write(i + "is Buzz.<br>");
            break;

        case (i%15 == 0):
            document.write(i + "is FizzBuzz.<br>");
            break;
    }
}
```

ただし、これだと 15 で割り切れる時に一番目の case にマッチしてしまうので、次のように順番を入れ替える必要があります。

```js
var i;
for(i=1; i<100; i++){
    switch(true){
        case (i%15 == 0):
            document.write(i + "is FizzBuzz.<br>");
            break;

        case (i%3 == 0):
            document.write(i + "is Fizz.<br>");
            break;

        case (i%5 == 0):
            document.write(i + "is Buzz.<br>");
            break;
    }
}
```