こんにちは、かつコーチです。
前回、if文を使った条件分岐を解説しました。
今回は、プログラミングのもう一つの基本要素である繰り返し処理(ループ)を扱います。
「for文とwhile文、どっちを使えばいいの?」
「break・continueの使いどころが分からない」
そんな疑問を、実際のコード例とともに解消していきます。
for文の基本の書き方
range()で指定回数繰り返す
for文は、決まった回数や決まったデータの数だけ処理を繰り返すときに使います。
range()関数と組み合わせると、指定した回数だけループできます。
for i in range(5):
print(i)
0
1
2
3
4
range(5)は「0から4まで」の5個の数値を順に返します。
開始値と終了値を指定したい場合は、range(開始, 終了)のように書きます。
for i in range(1, 6):
print(i)
1
2
3
4
5
リストをループで処理する
for文は、リストの要素を1つずつ取り出す処理でもよく使います。
fruits = ["りんご", "バナナ", "みかん"]
for fruit in fruits:
print(fruit)
りんご
バナナ
みかん
fruitという変数に、リストの中身が1つずつ順番に代入されます。
while文の基本の書き方
while文は、「条件がTrueである間、処理を繰り返す」ループです。
繰り返す回数が事前に決まっていない場合に向いています。
count = 0
while count < 5:
print(count)
count += 1
0
1
2
3
4
count += 1を書き忘れると、条件が永遠にTrueのままになり、無限ループに陥ってしまいます。
while文を書くときは、必ずループを終わらせる条件を意識してください。
for文とwhile文の使い分け
| 状況 | 向いている文 |
|---|---|
| 繰り返す回数が決まっている | for文 |
| リストなどの要素を順に処理したい | for文 |
| 条件が満たされるまで繰り返したい | while文 |
| 繰り返し回数が事前に分からない | while文 |
迷ったときは、「回数やデータが決まっているか」を基準に選ぶとよいでしょう。
break・continueの使い方
breakでループを途中で終了する
breakは、条件を満たした時点でループそのものを終了させる命令です。
for i in range(10):
if i == 5:
break
print(i)
0
1
2
3
4
iが5になった瞬間にループが終了するため、5以降の数値は表示されません。
continueでその回だけスキップする
continueは、その回の処理だけをスキップして、次の繰り返しに進む命令です。
for i in range(10):
if i % 2 == 0:
continue
print(i)
1
3
5
7
9
偶数のときだけcontinueが実行され、print(i)がスキップされます。
結果として、奇数だけが表示されます。
よくあるつまずきポイント・エラー対処
while文でカウンタの更新を忘れて無限ループになる
これは筆者が初めてwhile文を書いたときに、実際にやってしまった失敗です。
❌ Before(無限ループになる書き方)
count = 0
while count < 5:
print(count)
このコードを実行すると、countの値が更新されないため、count < 5が永遠にTrueのままになります。
画面に0が延々と表示され続け、ターミナルがフリーズしたような状態になりました。
筆者はこのとき慌ててしまいましたが、Ctrl + Cを押すことでプログラムを強制終了できます。
✅ After(正しい書き方)
count = 0
while count < 5:
print(count)
count += 1
0
1
2
3
4
count += 1を書き加え、ループのたびにcountの値を1ずつ増やすことで、条件がいずれFalseになり、正常にループが終了します。
while文を書くときは、「このループはいつ終わるのか」を必ず自問する習慣をつけておくと、こうしたミスを防げます。
まとめ
この記事のポイント
- for文は回数やデータの数が決まっている繰り返しに向いている
- while文は条件を満たすまで繰り返す処理に向いている
range()と組み合わせることでfor文で指定回数のループが書けるbreakはループ自体を終了、continueはその回だけスキップする- while文ではカウンタの更新忘れによる無限ループに注意する
次に読むべき記事
- if文・elif・elseで条件分岐
- リストの基本:作成・追加・削除・スライス
- 関数の定義と引数(デフォルト引数・可変長引数)
タグ: Python, 初心者向け, 基本文法