スポンサーリンク
スポンサーリンク
解答例
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(偽)に区別する値のこと
スポンサーリンク