Swiftで行こう!- FizzBizz!
有名なFizz Buzzをやってみましょう。
Fizz Buzzと言うのは"3"で割り切れたらfizz、"5"で割り切れたらbizz、"3"でも"5"でも割り切れるときはfizzbizzと出力します。
関数で作っています。
func fizzBuzz(_ numberOfTurns: Int)
fizzBuzzと宣言して( _ numberOfTurns: Int)と引数を指定します。( _ )は外部変数名を省略しますよと言うことを表しています。
そして、
for inでnumberOfTurnsの数だけ回します(繰り返し)。
あとは割り切れるときに出力することが必要になります。
出力する変数を決めます。
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
この記事が気に入ったらサポートをしてみませんか?