whileループについて
Aug 28, 2017 · 4 min read
・Exercise33:whileループ
ここでは、”while-loop”という新たなループについて学習していきます。
“while-loop”は、その条件式がtrueの間、間に書いてある処理を実行し続けます。
“while-loop”がすることはif文に似ていますが、if文と違うところは前述の通り、実行が1度きりではなく繰り返し行われるということです。
別の言い方をすれば、条件式がfalseになるまでひたすら繰り返します。
ただ”while-loop”には、1つ大きな問題があります。
それはループが無限に続く、つまり処理がいつまでも終わらなくなってしまう可能性があることです。
この処理が終わらないという問題を避けるために、”while-loop”を用いる際には以下のルールがあります。
- “while-loop”はむやみに使うものではなく、一般的には”for-loop”を用いること。
- いつか必ずブール論理値がfalseになっているかどうか、しっかりと条件式を見て確認すること。
- 疑わしい場合は、適当な変数を最初と最後に入れて出力し、どうなるか確認してみること。
このエクササイズでは、上記の3つの注意点を”while-loop”が満たしているかどうか学習することができます。

出力結果について
以下のようになります。

学習ドリル
- このスクリプトで出てきた”while-loop”を、呼び出せる関数に変えてみてください。そして”i < 6”の6を、変数に置き換えてみてください。
- この関数を使ってスクリプトを書き直し、6と異なる数字で実行してみてください。
- もう1つ変数として、関数の中で渡せるようにしてみてください。8行目の”+1”の部分を変数にして、どのぐらい増えるかは自由に調節でき流ようにしてください。
- この関数を使ってスクリプトを書き直し、どんな影響が出るか確かめてみてください。
- “for-loop”と”(0..6)”の範囲演算子を使って、書いてみてください。真ん中にこれ以上、インクリメントが必要でしょうか?もしそれを取り除かなかったら、どうなるでしょうか?
学習ドリルの答え
1 & 2. 以下のようになります。関数として書き換え、変数を4にして実行しました。


3 & 4. 以下のようになります。”+1”の部分を”addnum”という変数に置き換え、実行してみました。


5. 以下のようになります。

