◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
Tech Camp教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!


Pythonの中でもプログラミング定番の繰り返し処理があります。

シンプルな繰り返し処理としては、for文もありますが、より条件を指定して繰り返し処理を行う場合は、whileが適しています。

今回は、Pythonのwhileによる繰り返し処理について、解説していきます。

while文とは

for文同様にPython以外のプログラミングでも繰り返し処理で利用されることが多いのが、while文です。

for文についてはこちらの記事で解説しております。

for文との違いについて

それではwhileの記述方法などの解説に入る前に、for文との違いについて、解説しておきます。

実際の多くのwebサイトなどでもその違いについて、解説しているところもありますが、簡単な使い分けはfor文は繰り返し回数が既に決まっている場合に使用します。

それに対して、while文は事前に繰り返し回数が決まっていない場合に使用します。

while文の基本的な使い方について

while文の基本的な記述方法は、下記になります。


while 条件式:

    条件式がTrueの間繰り返す処理

 

指定条件がTrueの間繰り返される

上述のwhileの記述方法について、注意すべきポイントは指定条件がTrueの間繰り返されるところです。

ずっとTrueになる条件式や最初からFalse(意図せずに)になっている条件式の場合は、正常に動作しません。

単純な繰り返しであれば、for文の方が使いやすくおすすめです。

しかし条件式を指定するから対応できる仕様も少なくない為、while文の特徴をしっかりと把握しておかなければいけません。

loop回数を指定する記述

条件式がTrueの間繰り返し処理を実行することは、上記で解説しましたが、while文でloop回数を指定する場合は、下記の様に記述します。


#繰り返し条件式で使用する変数を準備

count_tmp = 1

#準備した変数を条件に5回処理を実行する

while count_tmp <= 5:

    print("繰り返し処理:" + str(count_tmp) + "回目")

    count_tmp += 1

#実行結果

繰り返し処理1回目
繰り返し処理2回目
繰り返し処理3回目
繰り返し処理4回目
繰り返し処理5回目

count_tmpに1を代入し、繰り返し処理を実行する度に1を足していきます。

使用例では5回処理を実行したい為、条件式がTrueの間実行される為、count_tmpが5より大きくなるまで実行されます。

6になった場合、6 <= 5ではないため、処理が終了します。

while文では条件式で繰り返し処理の回数が決まるように調整しなければいけません。

while処理を継続する方法

while文の処理の中で繰り返し処理を一部実行せずに継続して繰り返し処理を行う方法があります。

例えば1から10までの文字を出力する時に、5だけ出力せずに繰り返し処理を行いたい場合などです。

continueの記述方法

上述の様な処理を行う場合は、while文ではcontinueを使用します。

具体的な処理の流れは、continue以降の処理を飛ばしてwhile文の先頭に戻って処理を継続することになります。

基本的な記述方法は、下記になります。


while 条件式:

    if 条件式:

        continue

    繰り返し実行する処理

上記のようにif文とセットで使うことが多く、if文の条件式に該当した場合にcontinueで次の繰り返し処理へ移行される形になります。

 

continueの使用例

それでは実際にcontinueの具体的な使用例について、ご紹介します。


#繰り返し条件式で使用する変数を準備

count_tmp = 0

#準備した変数を条件に5回処理を実行する

while count_tmp < 5:

     count_tmp = count_tmp + 1

     #count_tmpが3の時のみ処理を変更

     if count_tmp == 3:

           #cont_tmpが3の時のみcontinu処理で以降の処理を実行しない

           continue

      print("繰り返し処理:" + str(count_tmp) + "回目")

#実行結果

繰り返し処理:1回目
繰り返し処理:2回目
繰り返し処理:4回目
繰り返し処理:5回目

実行結果から3回目の処理だけprint出力が実行されていないことがわかります。

これはif文の条件分岐でcount_tmpが3の時のみcontinue処理でwhile文の先頭に戻っているからです。

ここで注意する点は、「loop回数を指定する記述」でご紹介した使用例と同じ5回処理を繰り返すにも関わらずwhileの条件式に違いがあります。

(今回は初期値に0を代入していますね)

これはcontinueの為に変数に1を足すタイミングが変更になっている為、条件式を調整しています。

今回の場合、if文の部分はcontinueされないようにしなければ、いつまでも+1されずに、3回目から次にいけません。

while文を使う場合は、繰り返し処理に合わせて条件式の変更が必要になることがあるので、注意しなければいけません。

while処理を抜ける方法

while文にはcontinue以外にも繰り返し処理を制御するbreakがあります。

continueが繰り返し処理の先頭に戻って継続するのに対して、breakは強制的に繰り返し処理の中から抜け出す処理になります。

例えば繰り返し処理の中で特定の条件を満たした場合などに、繰り返し処理をこれ以上行いたくない、または、行う必要がない場合などによく使用されます。

例えば繰り返しの中で想定していない数値が出た場合にbreakでエラー処理をする為に使用されることもあります。

breakの記述方法

while文でbreakを使う場合の基本的な記述方法は、下記になります。


while 条件式:

    if 条件式:

        break

    繰り返し実行する処理

上記のように基本的な記述方法は、continueの時とよく似ています。
実際に使う場合は、if文の前になぜ繰り返し処理を抜けたかなどをprintで出力することも少なくありません。

 

breakの使用例

breakを使った具体的な使用例は、下記になります。


#繰り返し条件式で使用する変数を準備

count_tmp = 0

#準備した変数を条件に想定は10回処理を実行する

while count_tmp < 10:

    count_tmp = count_tmp + 1

    #count_tmpが5の場合処理を中断する条件式を設定

     if count_tmp == 5:

         #cont_tmpが5の時のにbreakでwhile文から抜け出す

         break

     print("繰り返し処理:" + str(count_tmp) + "回目")

#実行結果

繰り返し処理:1回目
繰り返し処理:2回目
繰り返し処理:3回目
繰り返し処理:4回目

実行結果からcount_tmpが5になって以降は、繰り返しのprint出力が実行されずに、while文の繰り返し処理が終了していることがわかります。

混同しやすいですが、continueとbreakの違いや、使い分けを確実に把握しておかなければいけません。

 

while処理後をelseで1度だけ処理を実行

whileの繰り返し処理の最後にelse節で1度だけ処理を実行することができます。

 

elseの記述方法

while文でelse節で最後に1度だけ処理を実行する記述方法は、下記になります。


while 条件式:

    繰り返し実行する処理

else:

    条件式がfalseになった時1度だけ実行する処理

while文の繰り返しに入る前から条件式がfalseの場合でも、1度だけ処理が実行されます。

elseの使用例

それでは具体的なwhile文でelse節の使用例についてご紹介します。


#繰り返し条件式で使用する変数を準備

count_tmp = 1

#準備した変数を条件に5回処理を実行する

while count_tmp <= 5:

    print("繰り返し処理:" + str(count_tmp) + "回目")

    count_tmp += 1

else:

    print("繰り返し処理終了")

#実行結果

繰り返し処理:1回目
繰り返し処理:2回目
繰り返し処理:3回目
繰り返し処理:4回目
繰り返し処理:5回目
繰り返し処理終了

else節の前は「loop回数を指定する記述」でご紹介した使用例と同じになります。

実行結果から最後にelse節の処理が行われていることがわかります。

注意するポイントはbreakと組み合わせて使う場合、breakで繰り返し処理が終了するとelse節は実行されません。

while処理は無限ループに注意

ここまでwhile文について解説してきましたが、while文を使う場合に、初心者がもっとも注意しなければいけないのが無限ループです。

無限ループは、while文の条件式がFalseにならずにループが終わらないことです。

無限ループの例

無限ループになってしまう場合の例は、以下になります。


#繰り返し条件式で使用する変数を準備

count_tmp = 1

#準備した変数を条件に5回処理を実行する

while count_tmp <= 5:

    print("繰り返し処理:" + str(count_tmp) + "回目")

    #条件式の判定になる変数に1を代入してしまい無限ループになる。

    count_tmp = 1

極端な例ですが、コメント部分でも記載している通り条件式の判定に使用する変数に1を代入してしまっている為、条件判定がTrueになり続けてしまい無限ループになってしまいます。

無限ループを回避する対策

無限ループになってしまう可能性がある場合は、上述で解説したbreakを適度にプログラミングコードの中に入れたり、ユーザーが操作できる場合は「Ctrl+C」で無限ループを停止することが可能です。

またVSCodeなどのエディタを使用することで、コーディング時点でエラーとして警告表示してくれます。

まとめ

今回はPythonの繰り返し処理の1つwhileについて解説をしてきましたが、いかがでしたか。

繰り返し処理としてはPythonにはforがありますが、同じ繰り返し処理でも使いどころが違います。

whileの繰り返し処理の記述方法や無限ループに注意して、より効率的なプログラミングが行えるように今回解説した内容を是非習得して頂ければ幸いです。

WebCamp・WebCamp Proについて

WebCampは1ヶ月でプログラミング・Webデザインスキルを学ぶ通い放題のプログラミングスクールです。WebCamp Proは3ヶ月間で未経験から即戦力エンジニアを育成するプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

11月11日、18日開催決定!2日間で人工知能(AI)を学習するPythonコースが開講

今回、当社(WebCamp)では、現役フリーランス・エンジニアとしてPythonの最前線で活動している講師をお招きし、2日間でPythonの基本から機械学習の基礎まで学ぶ短期集中型のコースを開講します。
Pythonの基礎プログラミング能力を身につけたい方機械学習やAIに興味はあるが学習できていない方現役Pythonエンジニアからリアルな話を聞きたい方
上記にあてはまる方は、ぜひご参加ください!

1月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のWebCamp Proコース。
11月受入枠は満員となっております。12月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWebデザイン・プログラミングを学びたい方はこちら!

▼ついに開講!オンラインでWebデザインを学びたい方はこちら!

おすすめの記事