Pythonにおける「if」「for」「while」は其々何をするものなのか
- if :条件によって実行するコードを実行しないコードを分ける
- for:リストや文字列などの要素を順番にひとつずつ処理する。
- while:条件が真である間ずっと同じ処理を繰り返す
if文
条件分岐を行う構文。条件が真か偽かをチェックし真なら真のときのコードを、偽なら偽のときのコードを実行してくれる。
if condition:
# 条件が真のとき
elif other_condition:
# それ以外でこちらが真
else:
# 上のどれでもないとき
いつif文を使うのか
- 入力値や状態に応じて処理パターンを切り替えたいとき
- 例:点数によって評価を変える、メニュー番号で処理を分岐。
- エラー条件や例外的ケースを先に弾きたいとき。
- 複数条件を組み合わせて「どれを優先するか」を決めたいとき。
For文
w3schoolsの定義によると…
A for loop is used for iterating over a sequence (that is either a list, a tuple, a dictionary, a set, or a string).
This is less like the for keyword in other programming languages, and works more like an iterator method as found in other object-orientated programming languages.
With the for loop we can execute a set of statements, once for each item in a list, tuple, set etc.
[
W3Schools.com
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular…
](https://www.w3schools.com/python/python_for_loops.asp “W3Schools.com”)
コード例
for x in iterable:
# x を使って処理
いつFor文を使うのか
- **「要素の個数があらかじめ決まっている/数えられる」**繰り返し:
- リストの全要素に対して処理する
- 文字列の各文字を調べる
for i in range(n):で n 回ループ
- 配列・辞書など「コレクション」を1回ずつなめる処理全般。
- データ処理・集計・フィルタリング・マッピング処理。
ポイント:
- C系の
for (i = 0; i < n; i++)よりも「何を列挙するか」に注目した構文になっている。([w3schools.com][3]) - 「決まった個数ぶん回したい・シーケンスを全部処理したい」なら基本は
for。
While文
条件が真である間、ブロックを繰り返し実行する。条件が偽になるか break するまで続く。
コード例
while condition:
# condition が真の間くり返す
いつ使うのか
- **「何回繰り返すか事前には決めづらい」**処理:
- ユーザ入力を「正しい値が入るまで」繰り返す。
- ある値が条件を満たすまで計算を続ける数値計算。
- ネットワーク・ファイルの読み取りなど、終了条件が外部要因に依存する処理。
補足:for が「列を最後までなめる」のに対し、while は「条件を満たす限り続ける」。Pythonでは for が強力なので、単なる回数ループは for、条件駆動のループだけ while にすると整理しやすい。
其々どう使い分ければいいのか
if を使うべきとき
- 条件によって処理のパス自体を変えたいとき。
- 何かを「する/しない」を決める。
- レンジチェック・分岐・例外ケースの処理。
for を使うべきとき
- コレクションやレンジを「1要素ずつ」処理したいとき。
for item in items:for i in range(n):- ループ回数が明確、または「列の長さ」で自然に決まるとき。
- データ構造の走査や集計。
while を使うべきとき
- ループ回数ではなく条件で終了を決めたいとき。
- 「ユーザが ‘q’ を押すまで続ける」
- 「誤入力なら再入力させる」
- 「値が収束するまで繰り返す」
forでは表しづらい「無限ループ+内部で break」パターン。
具体例
# if: 条件によって処理を分ける
if score >= 60:
print("pass")
else:
print("fail")
# for: 決まった個数 / シーケンスを回す
for x in [1, 2, 3]:
print(x)
for i in range(10): # 10回
print(i)
# while: 条件が成り立つ間だけ続ける
while not is_ok():
print("try again")
ask_user_input()
要約
- if:その場の「条件分岐」
- for:列や回数が分かっている「繰り返し」
- while:終了条件だけが決まっていて「何回かは分からない繰り返し」

