

オラはみんなにスクラッチ(Scratch)を教えるためにやってきた「きんた・まりす」だぞ。
「まりす」って呼んでくれたらうれしいぞ。
今回は「プログラム」での「バグ」について説明するぞ。
できるだけ簡単に説明するから最後までちゃんと読んで理解するんだぞ。
レッツ・スクラッチだぞ!
1.「バグ」とは
「バグ」とは、作ったプログラムが思った通りに動かない原因のことだぞ。
「スクラッチ」でプログラミングしていると、思っていたとおりにプログラムが動かないことがあるな。
それは「バグ」のせいなんだぞ。
よくある「バグ」の紹介
いくつかよくある「バグ」を紹介するぞ。
この例は、間違えて「全角」の数字を入力しちゃったため発生した「バグ」になるぞ。
「スクラッチ」のブロックに入力する数字は、基本的に「半角」じゃないと動かないから注意してほしいぞ。
この例は、スペースキーを押すと10歩動かす、というプログラムを実行し「スペースキー」を押したけど10歩動かなかった、という例だぞ。
なんで「スペースキー」を押しても10歩動かなかったのかというと、こんな風に「ずっと」ブロックをつかっていないからだぞ。
この例は「ずっと」ブロックを使う必要があることを知らないと、なんで動かないのかなかなか気づけないから注意が必要だぞ。
2.「デバッグ」とは
「バグ」があるとプログラムが思った通りに動かないことが分かったと思うぞ。
プログラムが思い通りに動くようにするには、「バグ」を直さなくちゃいけないな。
「バグ」を取り除く作業のことを「デバッグ」と言ったりするぞ。
「バグ」を「デバッグ」せずそのままにしていると、どんどんプログラムが思い通りに動かなくなり、「バグ」を取り除くのも難しくなってくるぞ。
そのため、「バグ」を見つけたらすぐに「デバッグ」して、「バグ」を取り除くことが重要だぞ。
デバッグのやり方
「デバッグ」の方法はいくつかあって、どんな「バグ」かによっても「デバッグ」の方法は変わってくるぞ。
こう言うと、「デバッグ」はとても難しく思うかもしれないけど、「デバッグ」のポイントを覚えれば、だれでも「デバッグ」できるようになるぞ!
今から「デバッグ」のポイントを紹介するぞ。
「デバッグ」するときに一番大事なことが、「バグ」の内容をキチンと理解することだぞ。
キチンと理解しないで「デバッグ」すると、間違えて「バグ」じゃないところを直してしまい、
それが原因でまた別の「バグ」ができちゃったりするんだぞ。
そんなことになったら、いつまでたっても「バグ」を取り除くことができないな。
だから、「デバッグ」するときはまず、「バグ」の内容をキチンと理解することから始めるんだぞ。
具体例:
「スペースキー」を押すと10歩動くはずなのに動かない
「スプライト」の「コスチューム」を変更したいけど変更できないなど etc...
「バグ」の内容をキチンと理解するコツ
「バグ」の内容をキチンと理解するコツとしては、一度プログラムを実行してみて、実行結果がどうなるのかをしっかりと観察するぞ。
その後、自分の思っていた通りに動いていない部分を見つけるんだぞ。
(たとえば、スプライトを回転させるはずが回転しないなど)
見つけたら、その部分の処理を、プログラムの中から探すぞ。
「バグ」はかならず1つだけとは限らないぞ。
2つ以上あったり、1つの「バグ」のせいで色々なところが「バグ」みたいになっている場合など、様々だぞ。
それなのにけっこうやりがちなのが、「バグ」を見つけたら一気に直そうとしちゃうことだぞ。
でも、ちょっと待ってほしいぞ。
もし、「デバッグ」に慣れていて、確実に「バグ」の原因が分かっている場合ならいいけど、
「デバッグ」に慣れないうちから「バグ」を一気に直すのは、他の「バグ」を作ってしまう原因になることがあり危険なんだぞ。
だから慣れないうちは、一気に直そうとするのではなく、少しずつ直していってほしいぞ。
少しずつ直していくコツ
少しずつ直していくコツとしては、ブロックを組み合わせてプログラミングするスクラッチの特性を生かして、
「バグ」の原因となっていそうな処理以外のブロックを、いったん切り離して実行してみることだぞ。
1.
2.
よくある「バグ」として、「変数」や「x座標」ブロックなどの「値ブロック」を使っている部分の処理で「バグ」が発生することがあるぞ。
そんなときはだいたい、その処理で使っている「値ブロック」の値が、思っていた値と違うことが原因だったりするんだぞ。
(「値ブロック」についてはこの記事で説明しているぞ)
それでは、どうやって「値ブロック」の値を調べるのかというと、「~と言う」ブロックを調べたい処理の前に組み込み、調べたい「値ブロック」を「~と言う」ブロックの「~」部分にはめ込むんだぞ。
そうすることで、「値ブロック」の値を「ステージ」上で確かめることができるぞ。
3.さいごに
「バグ」の原因には本当にいろいろあって、かならず「コレが原因」ということがないんだぞ。
でも、何回も「バグ」を直していると、何となく「バグ」の原因が分かるときがあるぞ。
もし、そのレベルまで達することができれば君も「プログラマー」の仲間入りだぞ!
それじゃまたな!
↓スクラッチ3.0はこちらをクリック