見出し画像

Swiftで行こう!- FizzBizz!

有名なFizz Buzzをやってみましょう。

Fizz Buzzと言うのは"3"で割り切れたらfizz、"5"で割り切れたらbizz、"3"でも"5"でも割り切れるときはfizzbizzと出力します。

関数で作っています。

func fizzBuzz(_ numberOfTurns: Int)

fizzBuzzと宣言して( _ numberOfTurns: Int)と引数を指定します。( _ )は外部変数名を省略しますよと言うことを表しています。

そして、

for innumberOfTurnsの数だけ回します(繰り返し)。

あとは割り切れるときに出力することが必要になります。

出力する変数を決めます。

var result = ""

割り切れるときの処理は

if i % 3 == 0 {
result += "Fizz"
}

if i % 5 == 0 {
result += (result.isEmpty ? "" : " ") + "Buzz"
}

if result.isEmpty {
result += "\(i)"
}

ですね。

3で割り切れるのみのときは最初の

if i % 3 == 0 {
result += "Fizz"
}

で終わりなのでそのまま出力すると、"fizz"が表記されます。

3で割り切れず、5で割り切れたらその次の処理、

if i % 5 == 0 {
result += (result.isEmpty ? "" : " ") + "Buzz"
}

result.isEmpty ? "" : " "で判定します。result.isEmpty ?なので空が真なので3で割り切れていないので、で「""」になり5はそのままの表記(スペースを入れない)bizzが表示されます。

3で割り切れていれば擬になり変数resultには先にfizzが入っていて「" "」スペースが入りfizz bizzが入ります。

どちらでもない場合はそのまま表示します。

if result.isEmpty {
result += "\(i)"
}


全コードです。

func fizzBuzz(_ numberOfTurns: Int) {
   for i in 1...numberOfTurns {
       var result = ""
       
       if i % 3 == 0 {
           result += "Fizz"
       }
       
       if i % 5 == 0 {
           result += (result.isEmpty ? "" : " ") + "Buzz"
       }
       
       if result.isEmpty {
           result += "\(i)"
       }
       
       print(result)
   }
}
fizzBuzz(15)

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz Buzz


この記事が気に入ったらサポートをしてみませんか?