Pythonの制御構造-while文

記事の内容

 この記事では、Pythonの繰り返し処理の1つであるwhile文の使い方について説明します。繰り返し処理は、ループ処理ともいいます。

***わからない用語があるときは索引ページへ***

1.while文の記述ルール

 while文は、条件式(論理式)を使った繰り返し処理です。whileの後ろに記述される論理式の演算結果がTrueである限り、後ろに続くプログラムブロックの処理が繰り返されます。構文ルールは、以下のようになります。

while <論理式>:
    <プログラムブロック>

whileの論理式の最後に、":"(コロン)を記述する必要があります。

2.while文のサンプルプログラム

 サンプルプログラム"while_ex1.py"でfor文の書き方や動き方を見てみましょう。
 変数ynの値が'yes'、または'y'である限り、「xとyの値を入力してx+yの計算結果を出力する」という処理を繰り返すプログラムです。

##while_ex1.py

##ynに初期値をセット
yn = 'yes'

##ynがyes、またはyである限り繰り返し処理
while yn == 'yes' or yn == 'y':   
   ##xとyの入力
   x = input("input x(xは整数) >> ")
   y = input("input y(yは整数) >> ")

   ##inputで入力されたデータは文字列型なので
   ##整数型にキャストして計算
   print("x + y =", int(x) + int(y))
   print("\n")

   yn = input("もう一度計算しますか?(続ける場合は'yes/y'、それ以外は終了) >> ")
   print("\n")

print("お疲れさまでした!!")


 繰り返し処理の範囲は、whileの後ろのインデントで字下げされたプログラムブロックとなります。

出力結果の例

input x(xは整数) >> 1
input y(yは整数) >> 1
x + y = 2

もう一度計算しますか?(続ける場合は'yes/y'、それ以外は終了) >> y

input x(xは整数) >> 2
input y(yは整数) >> 3
x + y = 5

もう一度計算しますか?(続ける場合は'yes/y'、それ以外は終了) >> no

お疲れさまでした!!

breakcontinueもfor文と同じ使い方ができます。
サンプルプログラム"while_ex2.py"は、breakを使ってサンプルプログラム"while_ex1.py"を書き換えてみました。どちらのサンプルプログラムも動きは全く同じです。
 whileの条件式に直接Trueを指定すると、無限ループとなります。このプログラムでは、ループの中でbreakを使ってynに'y'、'yes'以外を入力するとループを抜け出すように書き換えています。

##while_ex2.py

##論理式に直接Trueを指定すると、無限ループになる
##ynに'yes'または'y'以外が入力されたらループを抜ける
while True:   
   ##xとyの入力
   x = input("input x(xは整数) >> ")
   y = input("input y(yは整数) >> ")

   ##inputで入力されたデータは文字列型なので
   ##整数型にキャスト
   print("x + y =", int(x) + int(y))
   print("\n")

   yn = input("もう一度計算しますか?(続ける場合は'yes/y'、それ以外は終了) >> ")
   print("\n")
   
   ##ynに'yes'または'y'以外が入力されたらループを抜ける
   if not (yn == 'yes' or yn == 'y'):
       break

print("お疲れさまでした!!")

前の記事

この記事が気に入ったらサポートをしてみませんか?