コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay36コードを学ぼう1の「正しいループを使う」の攻略になります。
![](https://ko-noblog.com/wp-content/uploads/2022/02/8c511eb678c91354b1e9381a61d872b7-320x180.png)
解答例と解説
解答例と解説を確認していきます!
解答例
コードの解答例は以下のようになります。
![](https://ko-noblog.com/wp-content/uploads/2022/07/3527ac109f8e827632d45fe91297132a.png)
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「正しいループを使う」
攻略
ステージを攻略していきましょう!
![](https://ko-noblog.com/wp-content/uploads/2022/07/dafa86f829073b92e143eb6d78a1edf1-1024x640.png)
今回は初めからコードが入力されています。
下の画像を見てください。
![](https://ko-noblog.com/wp-content/uploads/2022/07/a68723affffc49e7c42b9c2d1e438942.png)
funcの形で何度も使えるように定義されていますね。
中身は「1マス進む→左を向く→1マス進む→宝石を取る→右を向く」です。
これをステージに当てはめると次の画像のようになります。
![](https://ko-noblog.com/wp-content/uploads/2022/07/bea27f27f5a0b8f8c8f83322ceea44c0-1012x1024.png)
Byteから伸びている赤い矢印に注目してください。
「宝石まで行った後、それを取って水色の矢印の方向を向く」
ここまでがfuncで定義されています。
そして、その後は水色・青・水色・・・と同じことの繰り返しです。
繰り返しということは、ループが使えます!!
説明文にもあるように、whileループもforループも使うことができますが今回はwhileループを使います。
whileループの条件から外れるかどうかのチェックタイミング
whileループでは、与えられた条件から外れるまで動き続けます。
与えられた条件から外れるかどうかをチェックするのは、
whileループの中身を完了した後です。
![](https://ko-noblog.com/wp-content/uploads/2022/07/a68723affffc49e7c42b9c2d1e438942.png)
今回の場合は、左の画像のfuncで定義した「turnAndCollectGem()」。
この作業をしている間にByteの前が行き止まりになることがありますが、作業は継続されます。
そして最後のturnRight()をした後に、
Byteの前が行き止まりかどうかをチェックします。
ここで行き止まりだったらループは終了、
逆に行き止まりでないなら作業継続となるのです。
このタイミングを理解していないと、
コードを書くのが難しくなるので覚えておきましょう!
まとめ
whileループの条件から外れるかどうかのチェックタイミングはわかりましたか?
チェックタイミングがわかれば条件の設定もしやすくなりますね!!
- whileループでは、入力されている作業を全て完了した後に条件チェックをする
次回はDay37「2つのループ」でお会いしましょう!ではまた!!
![](https://ko-noblog.com/wp-content/uploads/2022/02/8c511eb678c91354b1e9381a61d872b7-320x180.png)