【python/制御構造】for文では書きにくい繰り返しの時に使えるwhile文を徹底解説!

python

この記事ではpythonのwhile文を解説していきます。

この記事で学べる事

  • while文の作成方法
  • 次の繰り返しに進むcontinue文
  • 繰り返しを途中で終了させるbreak文
  • 繰り返しを終了しなかったときに実行させるelse節
  • 無限ループから抜け出す方法
  • 何もしないpass文

while文とは

まず初めにwhile文の事を解説します。

while(ワイル)文とはfor文と同じで、繰り返しを行う構文です。

for文はイテラブルに対して繰り返しを行いますが、while文は式の値に基づいて繰り返しを行います。

指定した式の値がTrueである限り繰り返しを行い続けます。

while文の作成

次にwhile文の作成方法を解説します。

while文は式の後に:(コロン)を書いて改行し、インデントをして書きます。

while文もfor文と同様にインデント(スペース)をしている限りwhile文の内側として扱われます。

また、インデントをやめるとwhile文の外側として扱われます。

#while文の作成
while 式:
    文… ←【while文の内側】
文    ←【while文の外側】

while文は式の値がTrueである限り繰り返しを実行し続けます。

そしてFalseになったら繰り返しを終了し、while文の外にある文を実行します。

実際にwhile文を使ってみます。

また今回は、このプログラムを軸に解説して行きます。

この例題はfor文でも書けますがwhile文で書くとキーボードから入力する事で任意の数の時に、プログラムを自動的に終了してくれます。

例題として変数に空のリストを代入し、while文を使ってリストの中に3つの値を入力してみます。

また今回は、input関数・len関数・appendメソッドを使用します。

input関数とappendメソッドを詳しく知りたい方は以下の記事をご覧ください。

if文による条件分岐を徹底解説!

len関数を詳しく知りたい方は以下の記事をご覧ください。

【データ構造1】複数のデータを格納できるリストの使い方を徹底解説!

#例題
fruits = []
while len(fruits) < 3:
    item = input('入力: ')
    fruits.append(item)
print('フルーツ一覧', fruits)
#プログラム実行後に入力
入力: apple
入力: orange
入力: banana
#表示結果
フルーツ一覧 ['apple', 'orange', 'banana']

リストの中に3つの値が表示されれば成功です。

以下は広告です。

次の繰り返しに進むcontinue文

次にwhile文が実行途中でも次の繰り返しに進む方法を解説します。

while文の実行途中で次の繰り返しに進むにはcontinue文を使います。

continue文

ここからは、continue文について解説して行きます。

continue文は、while文かfor文のどちらかの内部で使います。

continue文を使うとループ途中の残りの文を実行せずに次の文に移ることが出来ます。

実際にcontinue文を使ってみます。

この例題では初めに書いたプログラムにcontinue文を適用します。

また、この例題ではif文を使用します。

if文について知りたい方は以下の記事をご覧ください。

if文による条件分岐を徹底解説!

continue文を利用して、入力の際に間違えて同じ値を入力したときにまた繰り返しに戻るプログラムを組んでみます。

プログラムを組んだら、試しに同じ値を入力してみてください。

#例題
fruits = []
while len(fruits) < 3:
    item = input('入力 :')
    if item in fruits:
        print(item, 'この値はすでに入力されています。')
        continue ←【continue文】
    fruits.append(item)
print('フルーツ一覧', fruits)
#プログラム実行後に入力
入力 :apple
入力 :banana
入力 :banana ←【同じ値を入力】
banana この値はすでに入力されています。
入力 :orange
#表示結果
フルーツ一覧 ['apple', 'banana', 'orange']

このように同じ値を入力し、最後の表示で同じ値が無ければ成功です。

繰り返しを途中で終了させるbreak文

次は繰り返しを途中で終了させる方法を解説します。

while文の繰り返しを途中で終了させるにはbreak文を使います。

break文

ここからは、break(ブレイク)文を解説して行きます。

break文もcontiuneと同様にfor文かwhile文の内側で使います。

break文を使うとループ中のプログラムでも残りの文を実行せずに終了します。

実際にbreak文を使ってみます。

この例題も初めに書いたプログラムにbreak文を適用します。

今回のプログラムはbreak文を利用して同じ値を入れた場合に強制的に終了させるプログラムを組んでいきます。

前回と同じく、プログラムを組んだら同じ値を入力してみてください。

#例題
fruits = []
while len(fruits) < 3:
    item = input('入力 : ')
    if item in fruits:
        print('この値はすでに入力されています。')
        break ←【break文】
    fruits.append(item)
print('フルーツ一覧', fruits)
#プログラム実行後に入力
入力 : apple
入力 : banana
入力 : banana ←【同じ値を入力】
この値はすでに入力されています。
#表示結果
フルーツ一覧 ['apple', 'banana']

このように同じ値を入力し、最後の表示で値が2つまでなら成功です。

以下は広告です。

繰り返しを終了しなかったときに実行させるelse節

次は繰り返しを終了しなかったときに実行させる方法を解説していきます。

while文で繰り返しを終了しなかったときに実行させる方法はelse節を使います。

else節

ここからは、else節について解説して行きます。

else節はif文の時と同じやり方で使います。

while文にelse節を適用すると繰り返しを終了しなかったときに実行してくれます。

if文でのelse節の使い方を知りたい方は以下の記事をご覧ください。

【python/制御構造】if文による条件分岐を徹底解説!

実際にwhile文を使ってみます。

この例題も初めに書いたプログラムにelse節を適用します。

このプログラムでは同じ値を入力したときにプログラムを終了して、何も表示させないようにします。

前回と同じく、プログラムを組んだら同じ値を入力してみてください。

#例題
fruits = []
while len(fruits) < 3:
    item = input('入力 : ')
    if item in fruits:
        print('この値はすでに入力されています。')
        break
    fruits.append(item)
else:
    print('フルーツ一覧', fruits)
#プログラム実行後に入力
入力 : apple
入力 : banana
入力 : banana
この値はすでに入力されています。
#表示結果
  ←【何も表示されない】

このように同じ値を入力したときに何も表示されなければ成功です。

以下は広告です。

無限ループを抜け出す方法

ここでは、while文の無限ループから抜け出す方法を解説します。

無限ループとは繰り返し(ループ)が永遠に繰り返されることを言います。

また、無限ループは「shift+F5」(VS codeでプログラムを組んでいる場合)で止めることが出来ます。

以下のようなプログラムを書くと無限ループします。

#無限ループのプログラム
while True:
    print('hello!')
#表示結果
hello! ←【'hello'が永遠に続く】
hello!
hello!
…

このように、while文では無限ループすることが出来ます。

そして、無限ループは「終了しない限り繰り返す」プログラムに使えます。

終了しない限り繰り返す方法(break文)

試しに終了しない限り繰り返し続けるプログラムを書いてみます。

今回は無限ループを終わらせるためにbreak文を使います。

実際に書いてみましょう

例題として文字列を入力し続ければ永遠に繰り返し、何も入力せずにEnterを押すと終了するプログラムを書いてみます。

プログラムを組んだら文字列を入力してみましょう。

#例題
while True:
    word = input('word : ')
    if not word:
        break
    print(word)
#プログラム実行後に入力
word : apple
word : hello
word : japan
… ←【入力し続ければ永遠に繰り返す】
#表示結果
apple  
hello  
japan
… ←【何も入力せずにEnterを押せば終了する】

このように文字列を入力し続ければ永遠に繰り返し、何も入力せずにEnterを押して終了すれば成功です。

以下は広告です。

何もしないpass文(おまけ)

最後に制御構造とは違いますがpass文について解説します。

pass文とは何もしない構文の事です。

トランプなどで何もしない時に「パス」といいますが、それと同じです。

pass文は何も処理をしたくないけれど、文法上なにか文を入れなければならない時に使えます。

実際にpass文を使ってみます。

例題として何もせずに1万回繰り返すプログラムを書いてみます。

また、この例題ではrange関数を使います。

range関数について知りたい方は以下の記事をご覧ください。

【python/制御構造】繰り返しを行うfor文を徹底解説!

#例題
for a in range(100000000):
    pass
#表示結果
  ←【何も表示されない】

プログラムを実行して少しの間、停止して何もなく終了したら成功です。

pass文は処理を後でやる時などに使えます。

まとめ

今回はwhile文について解説しました。

while文はfor文では書きにくい繰り返しを書くときに使えますので覚えて置くと便利です。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました