GAS中級講座 事前課題【課題3】全員参加型FizzBuzz問題リレー
FizzBuzz問題
数字を1から順に100までデバッグ出力します。
ただし
・数字が3の倍数のときには数字の代わりに「Fizz」
・数字が5の倍数のときには数字の代わりに「Buzz」
・数字が3の倍数かつ5の倍数のときには代わりに「FizzBuzz」
と出力するようにしてください。
一つ条件がありまして、「他の参加者と同じ解答をしてはいけません」。
私はこんな感じの、switch文で提出しました。
スタートとターゲットの値を最初にconstしとくと、数字の範囲を変えたいときにもいいかなーっていう考え方です。
switchでは、5の倍数かつ3の倍数という関門は、&&の論理演算子(左辺と右辺がいずれもTRUEならTRUE)で最初に入れて、
5の倍数、3の倍数は ===の比較演算子で左辺と右辺が等しければTRUE。
function myFizzBuzz() {
const target = 100;
const startNumber = 1;
for (let i = startNumber; i <= target; i = i + 1) {
switch (true) {
case (i % 5 === 0 && i % 3 === 0):
console.log("FizzBuzz");
break;
case (i % 5 === 0):
console.log("Buzz");
break;
case (i % 3 === 0):
console.log("Fizz");
break;
default:
console.log(i);
}
}
}
↓他の回答を見ていると、こんな感じの書き方があって、おお~すげ~となった。シンプルできれいでわかりやすくていいな。
function myFunction_FizzBuzz() {
for(let i=1; i<=100; i++){
let x = 0;
if(i % 3 === 0){x += 1;};
if(i % 5 === 0){x += 2;};
switch(x){
case 0: console.log(i); break;
case 1: console.log('Fizz'); break;
case 2: console.log('Buzz'); break;
case 3: console.log('FizzBuzz'); break;
}
}
}
その他、同期の回答は自分のスクリプトにメモって、こういう書き方もあるのか~と眺めてはニヤニヤしています。
クラスを使っていた方もいて、クラスが何なのかわからないので追々理解できるとよいな~。
いいなと思ったら応援しよう!
いただいたサポートで、書籍代や勉強費用にしたり、美味しいもの食べたりします!