どうも!リョクちゃです。
前回はfor文について、触れました。
VB.Netと比較して触れたことで、どんなものかわかったかと思います。
( 自己記録用と言いながら、ざっくり勉強になってしまってます……(-_-;) )
さて、今回は、前回触れることができなかった”while”文について触れていきます。
簡単にイメージだけでもつかんでもらえたらなと思います。
ちなみに前回の記事は、こちら
目次
while文
構文は下のようになります。
1 2 |
while 条件式 : 処理 |
条件式が真(True)か偽(False)となる式を記述し、
結果がTrueなら(または、Trueの間)は処理が繰り返され、
一方でFalseならWhileを抜けます。
最初からFalseの場合は、処理は実行されません。
※ 末尾の:(コロン)を忘れずに……。
例として、変数xを1から1つずつ足していき、10になるまで
足した結果を出力し続けてください。
望む結果としては、1,2,3,4,5,……,10になれば良いことになります。
この例を構文に当てはめて記述すると、
1 2 3 4 |
x = 0 while x < 10 : x += 1 print(x) |
これを実行すると、1~10までそれぞれ出力がされます。
また、例をフローチャートで書いてみると下のような感じになります。
無限ループ
Whileループを無限にループさせたい場合は、下のように記述します。
1 2 |
while True : 処理 |
条件式をTrueとすることで延々と処理を繰り返します。
これを抜ける場合は、for文でも使った”break”を使います。
※break文を使わないと強制終了をしなくてはならないので注意が必要です。
以下、例を含めて書くと
1 2 3 4 5 6 7 |
x = 0 while True: if x == 5: break x += 1 print(x) |
変数xが5になると、while文を抜けるといった処理になります。
まとめ
2回にわたって繰り返し処理について触れてきましたが、ここで簡単にまとめておきます。
- for文 あるシーケンス型のアイテム一つ一つに対して処理を行います。
- while文 条件が”真”の間、処理を繰り返し行います。
必要に応じて使い分けて下さい。
練習問題
① 1~50までを足した総和を求め、出力してください。
→ 1 + 2+ 3 +……+50
② 1~50までを繰り返し、奇数のときは出力し、
偶数の時は出力しないように処理を書いてください。
→ 1, 3, 5, ……, 49
回答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
① x = 0 cnt = 0 while x < 50: x += 1 cnt = cnt + x print(cnt) > 1275 ② y = 0 while y < 50: if y % 2 != 0: print(y) y += 1 |
おわりに
今回で、制御構文編はおわりとなります。
簡単にざっくりと触れてきましたが、なんとなくイメージつかめてもらえたら嬉しいです。
筆者ももっと勉強してうまく伝えられるようにならねば……
状況に応じてWhileやForを使い分けれるようになれるといいですね。
ハードウェア制御だと、Whileがよくつかわれるのかな……?
最後までお読みいただきありがとうございます。