序章
第一章
Bashで理解するプログラミングの4つの要素
第二章
JavaScriptで学ぶプログラミングの基礎
その他
繰り返しを知ろう
説明
それでは始めていきましょう。
今回からは、繰り返しと条件判定の授業です。
繰り返しとはいわゆるループのことです。
「無限ループ」というのは、いつの間にか世間に浸透した言葉ですが、もともとはプログラミング用語です。
そして、条件判定とは”もし〜だったら”、”もし〜だったら、そうでなければ”という判断をして
プログラムの処理を枝分かれさせることを指します。
日常生活でも、「もし雨が降ったら、家でゲームをする。そうでなければ映画を観に行く。」など、
人間はその時の状況に応じて行動を変えています。プログラムも同じなんですね。
現実のプログラミングとは繰り返しと条件判定が全てであると言っても過言ではありません。
それに加え、変数と関数の概念がしっかりと頭に入っていれば、どんなプログラミング言語でプログラムを書くとしても、基本的な考え方は同じです。
- 変数
- 関数
- 繰り返し
- 条件判定
余談ですが、これら以外のプログラミング言語特有の文法などは些細な問題です。
と言っても、英語の文法が誤っているとテストで減点されたり、会話が通じないのと同様に、プログラムも正しく動かないことは事実なのですが・・・
プログラムを書くに当たって、文法も覚えておく必要はあるのですが、自分でどんどん書いていくと文法は自然と身に付きます。
また、利用しているVSCodeなどのツールが文法誤りを指摘してくれたり、多くのサポートを提供してくれます。
ですので、細かいことは気にせずに、今回からは繰り返しと条件判定の考え方をしっかりと学んでいきましょう。
loop.shをVSCodeで開いてください。
準備が出来たでしょうか?
前回と同じように、ターミナルを開いて以下のように実行してください。
プログラムの詳細を説明します。
- 2行目の「futuu_ni_hyoji」は、単語とその単語の文字数を表示する関数です。
- 8行目の「kiken_ni_hyoji」は、「futuu_ni_hyoji」とほとんど変わりありませんが、”ヤバいです。”と表示する関数です。
- 13行目の「zoo」というのは、動物の単語のリストを定義する「配列」という変数です。(配列の意味は今は気にしないで大丈夫です)
- 15行目から19行目は繰り返し処理を行っているプログラムで、「do」から「done」の間に書かれたプログラムを繰り返し実行します。
do
# 繰り返し処理の中身
done
例えば、繰り返しの1回目では”elephant”を、2回目では”gorilla”を・・・
4回目では”horse”をという風に、単語のリストが終わるまで17行目と18行目の処理を繰り返し実行しています。
- 17行目でwcコマンドで単語の文字数を数えて「mojisu」という変数にそれを保存しています。
- 18行目で「futuu_ni_hyoji」という関数を呼び出し、画面に単語とその文字数を表示しています。戻り値は必要がないので無視しています。
さて、ここまで理解出来たでしょうか?
沢山時間をかけて、このプログラムと説明を何回も読んでしっかりと理解してください。とても重要な部分です。
課題
理解ができたら、課題を解いていきましょう。
loop.shというファイルの最後に以下の通りのプログラムを追加してください。
- 13行目の「zoo」のように、「fruits」という果物の単語のリストを書いてください。
- 「fruits」という単語を1つずつ繰り返す処理を書いて、文字数をカウントし、関数「futuu_ni_hyoji」を呼び出してください。
英単語である必要はありません。
例えば、”ichigo”など、単語がわからなければアルファベットで大丈夫ですし、スペルが正しい必要はありません。
単語は最低3つ書き、好きな果物を1つ入れましょう。
プログラムの追加が終わったら、実行してください。
実行したら、こんな感じになるのではないでしょうか?
(horseよりも下の行は、「fruits」に書いた単語のリストによって変わります)
gorillaは7文字です
wolfは4文字です
horseは5文字です
appleは5文字です
bananaは6文字です
grapeは5文字です
kiwiは4文字です
「fruits」に追加した単語の数だけ、繰り返し処理が行われたことを確認してください。
例えば2つの果物しか書いていない場合は、2回だけ繰り返し処理が行われていますよね。
ヒントです。
- もし、コピー&ペーストしてプログラムを追加し、以下のように表示されてしまったら、変数の名前が正しいかどうか確認してください。
gorillaは7文字です
wolfは4文字です
horseは5文字です
elephantは8文字です
gorillaは7文字です
wolfは4文字です
horseは5文字です
- コピー&ペーストしてプログラムを追加した場合、果物の単語を保存する変数の名前として「animal」は正しいでしょうか・・・?
果物は動物ではありませんよね。神は細部に宿ると言います。
答え合わせ
それでは、長くなりましたので、今回はここまでとしましょう。
正解例はこちらにあります。
お疲れ様でした!
次回はこのプログラムに条件判定を追加していきます。