![見出し画像](https://assets.st-note.com/production/uploads/images/32449654/rectangle_large_type_2_65dbc74de9783e041ed75728d527cc69.jpg?width=1200)
【知識0から始めるプログラミングC#】#3「Chapter2&3」:使用教本『スラスラ読める Unity C#ふりがなプログラミング』
本noteはプログラミング知識0の文系大学生が『スラスラ読める Unity C#ふりがなプログラミング』で学習した学習記録を書いたものです。
これから『スラスラ読める Unity C#ふりがなプログラミング』を使って学習する人が学習を進めていく中で同じ問題にぶつかったときに、参考にしてもらえれば嬉しいと思い作成しています。
できるだけ精確なnoteになるように努めますが、まだまだプログラミングに関しては初心者ですので、間違いがあるかもしれないです。ご了承ください。(Twitterなどでご指摘いただけますと幸いです。)
Twitterでプログラミングに関することを日々つぶやいていますので是非フォローお願いします。(TwitterID:@alephNo)
(前回)【知識0から始めるプログラミングC#】#2「Chapter1」
(次回)【知識0から始めるプログラミングC#】#4「Chapter4&5」
④Chapter2
【if文が出てきて条件分岐を含むプログラムを書きます】
このチャプターはChapter1と大きく変わることは出てこないので、特に注意すべき問題もありません。
せっかくなのでこのタイミングで問題が起きた時の「フローチャート図」を描いてみました。
基本的にはこんな感じで進めていく形になると思います。
実はこのチャート問題があって、一番下の「オンラインでスクリプトをダウンロードして、中身のコードをそのままコピー&ペースト。」でも問題が修正されなかった場合、ループしちゃいます(笑)
基本的に”答え”をコピペしてるので、正しく動かないということは無いのですが、実はChapter3で正しく動かない場面が出てきます。
Chapter2の難しいと思うところは演算子がテキストと間違っていた場合、エラーメッセージは出ないが違う結果が出てしまう。ということです。
特に比較演算子(例:A>B)を間違ってしまい、答えが存在しないプログラムを書いても、エラーは出ません。(もちろん、何も動かない)
テキストの復習ドリルでもそのパターンを扱っているので、要チェックです。
このChapterで「エラーが出ないのに正しく動かない」ときは、まずは演算子に注目して見直してみると良いと思います。
⑤Chapter3
【繰り返し文を使ったプログラムを書きます】
問題のChapterです。
まず最初に問題が起こるのはP.105「同じメッセージを5回表示する」のプログラム
ぜひまずはテキストの指示通りコードを書いて、プログラムを走らせてみてください。(Chap3_3_1.cs)
for文を使って「ハロー!を5回表示する」プログラムを書いたはずなのに1回しか表示されません。
(5回正しく表示された人は読み飛ばしてください。)
多分、何度確認しても同じ結果になると思います。
なので、一旦『同じメッセージを5回表示する』(Chap3_3_1.cs)を飛ばして
次の『メッセージの中に回数を入れる』(Chap3_3_2.cs)に行きましょう。
違いは表示させるデバック機能の部分が(Chap3_3_1.cs)
Debug.Log("ハロー!");
から(Chap3_3_2.cs)
Debug.Log(cnt+"回目のハロー!");
に変わっただけです。
プログラムを動かしてみましょう。
するとしっかり
「0回目のハロー!」
「1回目のハロー!」
「2回目のハロー!」
「3回目のハロー!」
「4回目のハロー!」
と合計5回表示されます。
同じような問題がP.110の『九九の計算をしてみよう』(Chap3_5_1.cs)で発生します。
テキストのプログラムを書いてプレイを押すと
一見、上手く動いたように見えます。
しかし、よく[Console]のタブを見てみると結果が36個しか出力されていないことが分かります。
九九は9×9なので、結果は81個必要ですよね。
これも一度無視して次の『九九らしく表示する』(chap3_5_2.cs)のコードを書いて走らせてみます。
すると正しく81個の結果が表示されました。
これらのことから、このChapterで正しく表示されない原因は
『まったく同じ結果(数値)はUnity側が自動的に複数回表示しないようにしている』という仕様が原因だと推測できます。
そのため、『九九の計算をしてみよう』(Chap3_5_1.cs)では九九の中で値の異なる36個の結果のみが表示されたわけです。
これはあくまで同じスクリプト(1個の命令書)の1回の行動で起こる問題なので、実際にプログラムする際は問題無いと思われます。
Chapter3以降でこの仕様による問題が起こるスクリプトは無いです。
まとめ
④Chapter2
・Chapter1とそこまで違いは無い。
・エラーメッセージ無しで上手く動かないときは比較演算子をチェック
⑤Chapter3
・Unityの仕様上上手くいかないプログラムがある。