Swift Playgrounds

コードを学ぼう1【階段を上がる条件を探す】解答例と解説

階段を上がる条件を探す

解答例

for i in 1 ... 16 {
  if isOnGem {
    collectGem()
    turnLeft()
  } else {
    moveForward()
  }
}

解説

Bool(ブール)値』という言葉が出てきました。
Boolとは、trueまたはfalseのいずれかになる値のことです。
例えば、『もし(if)宝石の上にいる(isOnGem)』なら、true
そうでなければ、falseという感じで、どちらか一方に区別します。

『else if』と『else』の違いも、紛らわしいのでしっかり覚えましょう。


if A {
//もしAなら実行するコード
} else if B {
//Aがfalseで、Bがtrueの時に実行するコード
} else {
//AとBがfalseの時に実行するコード
}

 

このようになります。
今回のようにforループで囲ったり、関数に入れたり、ifにifを入れたりすることがあります。
今後のために、ちょっとややこしいので、整理しておきましょう。

これを、forループで囲って作ります。
『if』に入れると、『isOnGem』の動作か『それ以外』の動作で1回分のループになります。
なので、12歩分のマスしかないけれど、16回ループしないと辿り着けません。
1〜16回繰り返す内の4回分は、『宝石を取って左を向く』という動作になるからです。

要点まとめ

・ブール値とは、true(真)かfalse(偽)に区別する値のこと