Programming

Day5「バグを見つけて直す」|Swift Playgrounds 攻略と解答例【ゼロから学習】

コウです、よろしくお願いします!

「ゼロからプログラミングを始める」人に役立つ情報を発信しています!

今回はDay5、「バグを見つけて直す」の解説になります。

「バグ」ってなんだかプログラミングっぽいですよね笑

ではいきましょー!!

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...

解答例と解説

初めに解答例と解説です!

解答例

コードの入力は直接打ち込むほか、画面下に出てくる候補をタップしてもできます

解説

まずは修正例です。

次に、実際にコードを実行すると以下のようになります。

しっかりとデバッグすることができましたか?

今回のポイント

バグについて

バグとは、「アプリケーションが正しく動かない原因となるコードのミス。」です。

(Swift Playgroundsより)

また、バグを見つけて直すことを「デバッグ」と言います。

このステージで取り扱うバグは、ただByteが宝石やスイッチにたどり着けずクリアできないだけです。

しかし、バグの中にはアプリケーションなどを動かすのを根本的に妨げてしまう、致命的なものもあります。

この先のステージでもバグには注意していく必要があります。

ステージ攻略「バグを見つけて直す」

攻略

説明文を読んで、クリア条件を確認しましょう。

Byteに隠れて少し見えづらいですが、画面奥に宝石とスイッチがあります。

ステージは画面をタッチすることで、自由に角度を変えることができます。

説明文にはクリア条件が書かれていませんね。

しかし、ステージ画面の左上に「宝石0/1,スイッチ0/1」があることから、

宝石を1つ取って、スイッチを1つ切り替えることができればクリアのようです。

また、今回はあらかじめコマンドが入力されています。

タイトルの通り、

「このコードにバグがあるから、直してクリアしてね!」

ということのようです。

それでは、説明文にもあるようにコードを1度実行してみましょう。

Byteが宝石やスイッチがあるところの手前で左に曲がってしまいました。

これではこの先での「collectGem()」や「toggleSwitch()」の意味がありませんね。

(Byteはそれでも必死でコマンドを実行してくれています笑)

これは、moveForward()がturnLeft()の前に1つ足りないのが問題のようですね。

足してあげるとこのようになります。

手前で曲がってしまうことはなくなりましたね!しかし、まだ改善点はあるようです。

上から4行目のmoveForward()を実行したあと、

宝石を取ることなく更にmoveForward()で進んでしまっています。

結果、スイッチは切り替えていますが、宝石を取ることはできていません。

では、5行目のmoveForward()を削除してみましょう!

ここまでやるとクリアになるので、解答例に進みます↓

まとめ

今回はあらかじめ入力されているコードの中から、バグを見つけて直すデバッグをしました。

デバッグの際には、とりあえずコードを実行してみておかしいところを発見しましょう!

この記事のポイント
  • バグとは、「アプリケーションが正しく動かない原因となるコードのミス。」
  • バグを見つけて直すことを「デバッグ」という。
  • デバッグの際にはとりあえずコードを実行して、おかしなところを発見する。

次回はDay6「バグつぶしの練習」でお会いしましょう!ではまた!!

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...