Pythonで条件付きループ処理を行うために使うwhile文の使い方解説です。どのように書けば正しく動作するのかから説明しています。
また、while文でよく使うインクリメントする方法や万が一無限ループに陥ってしまったときの対処法も紹介しています。
while文とは
定義
while文とは条件付きループ処理ができる構文です。指定した条件文が真(True)の場合は常に処理が事項されます。そして、条件式が偽(Falese)になったら止まります。
もし、条件文を常に真になるようなものにしてしまうと一生終わらないプログラムになってしまいます。これを無限ループと言います。
while文はfor文とif文が合わさったものというイメージが分かりやすいですね。
Pythonのループ処理に使われる構文にはfor文とwhile文があります。今回はそのfor文の使い方解説をしていきます。 for文とは for文はループ処理を行う構文です。Pythonで書く場合はコロン(:)とインデントに注[…]
Pythonの条件分岐に使われるif文の基本的な書き方を紹介していきたいと思います。そもそも条件分岐とは何か?if文を書くときの注意点を見ていきましょう。 条件分岐とは 条件によって処理を分けることを条件分岐と言います。分岐の[…]
書き方
- 「while {条件文}:」を1行目に書く
- 2行目以降にインデントして処理文を書く
1 2 3 4 5 6 7 8 9 10 11 |
num = 0 while num < 5: print(num) #処理を書く num = num + 1 #インクリメント #出力結果 0 1 2 3 4 |
num変数の値が5未満のときに出力するプログラムです。なので「num=5」になったらプログラムは止まります。
4行目に書かれている「num = num + 1」はインクリメントと言われます。この部分は下で詳しく解説します。
ここで紹介したwhile文をfor文とif文で書いてみると以下のようになります。while文だけの方がコンパクトですね。
1 2 3 4 5 6 7 8 9 10 11 12 |
num = 0 if num < 5: for i in range(5): print(num) num = num + 1 #出力結果 0 1 2 3 4 |
このプログラムでも5行目にインクリメントが行われています。インクリメントとは何なのかを見ていきましょう。
インクリメントとは
インクリメントとは変数の値を1増やすことを言います。while文ではよく使う手法です。書き方は以下のように2通りあります。また、値を減少させていくこともできます。
1 2 3 4 5 6 7 8 9 10 11 |
#代入を使う num = num + 1 #増加 num = num - 1 #減少 #省略記法 num += 1 #増加 num -= 1 #減少 #2ずつ増やす num = num + 2 num += 2 |
このインクリメントを使うと奇数だけや偶数だけ、ある数の倍数だけなどの出力もできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#3の倍数 num = 0 while num < 10: print(num) num += 3 #出力結果 0 3 6 9 #4ずつ減少させる num = 10 while num > 0: print(num) num -= 4 #出力結果 10 6 2 |
非常に便利なインクリメントですが、これを使わないとどうなるのか見てみましょう。
無限ループの対処法
インクリメントを使わないとwhile文のループが終わりません。つまり、無限ループになってしまいます。
1 2 3 4 5 6 7 |
num = 0 while num < 10: print(num) #num += 1 この行をコメントアウト #出力結果 0の無限ループ |
上の例ではインクリメントの行をコメントアウトしているのでnum変数の値は0のままです。なので「num<10」という条件文が常に真となって処理が終わらなないのです。
このように無限ループになってしまったら「Ctrrl+C」で脱出しましょう。これは強制終了のコマンドです。
このコマンドを押すと「KeyboardInterrupt
」と表示されてプログラムが止まります。困ったときに使ってみてください。
まとめ
- while文は条件付きループ処理
- コロン(:)とインデントで書く
- インクリメントとは変数の値を増加させること
- 減らすことも可能
- 無限ループは「Ctrrl+C」で脱出
- ループ処理とは?for文とwhile文の解説
- while文を使う方法【インクリメントと無限ループ対処法】
- for文の使い方解説(一行・range関数・リスト)
- for文を一行で書く方法と複数行との違い
- for文でrange関数とlen関数を使う方法
- for文でリストのインデックスと要素を取り出す(enumerate)
- for文で辞書のキー・バリューを取り出す方法(enumerate・items・keys・values)
- 条件分岐とは?if文・else・elifの書き方
- for文やif文でpass・break・continueを使う方法
- while文のbreak・else・continue使い方まとめ
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]