繰り返し構造
forやwhile 文の取り扱い方を説明します。
for 文とは回数分だけfor文の直下のインデントされた部分を繰り返し実行します。
《 test013.py》
for x in range(3):
print(" %d A " %x)
print(" B ")
結果
2・3行目の処理を3回繰り返します。
複数行ある場合、行毎にインデントの位置を変えるとエラーになります。
while 文とはまず、条件が満たされているか判断し、満たされていればそこで終了条件が満たされて無ければ、何度も同じ動作を繰り返し条件が満たされるまで続ける。無限ループになる可能性があります。
-
-
while(条件式):
処理
-
《 test016.py 》
a=0;b=5
while (b>a):
print(" b = %d > a = %d "%(a,b))
a +=1
結果
aの0から、aに1ずつ増加してbが5以上なったら、繰り返しを止める。
for文やwhile文などの繰り返し処理で繰り返しを途中で中断できます。
-
- break
- continue
break を理解できるとdo ~ while 文と同等の動作ができるようになります。
break は中断後 一番近いブロックの終わりに移動します。
《 test017.py 》
a=0;b=1
for a in range(5):
if(a+b == 3):
break
print("break;%d+%d=%d"%(a,b,a+b))
print(" END ")
○ 結果
a+b が 3 担ったら、になったら、ループを抜けます。
continue は中断後 次の回の最初に移動します。
《 test018.py 》
a=0;b=1
for a in range(5):
if(a+b == 3):
continue
print("break;%d+%d=%d"%(a,b,a+b))
print(" END ")
結果
a+b が 3になったら、最初に戻ります。だから、3は表示しません。
do ~ while
while文は「ある条件を満たす間、指定の処理を繰り返す」というものです。つまり条件が常にTrue(=真)であれば、指定の処理を永遠に繰り返すつまり、無限ループになります。
while 文 と do ~ while 文の違いは、条件を判断する後に処理をするか。処理行ってから判断するかの違いですが、Pythonでは do ~ while 文 は無いために IF 文を加える事で do ~ while 文 と同等の動作が出来ます。
《 test019.py》
a=0
while True:
print(" b = %d > 3 "%(a))
a +=1
if(a == 3):
break
print(" END ")
結果
a が 3になったら、while 文 から抜けられます。