こんにちは。
おぎーです。
この記事では、whileループとbreakについて初心者目線で優しく解説しています。
それでは早速学習を進めていきましょう。
Google Colaboratoryを開いてください。
インストールしていない方はこちらの記事を参考にインストールしましょう。
whileループ
前回はforを使って反復処理をするコードを学びましたが、今回はwhileを使用します。
whileを使用して反復処理するときは、次のような構文となります。
#このコードは実行できません
while [式] :
[コードブロック]
この構文では、[式]がありますね。
whileを使用した反復処理は、この[式]がTrueとコンピュータが認識している間はずっと行われます。
[コードブロック]では反復処理したい内容のコードを記します。
さて、ここでwhileループを使用したコードの例を見てみましょう。
x = 5
while x > 0:
print('{}'.format(x))
x -= 1
print("こんにちは")
このコードでは、まずxに5という値を代入し、
次にwhileループを定義して、その式はx > 0 としています。
すなわち、x > 0であればずっとTrueで評価され続けるというわけです。
次の行では、formatメソッドを使用してxの値を出力します。
formatメソッドでは、シングルクォーテーションで囲まれた波カッコと、
formatの次に丸カッコで囲んだ値を置き換えます。
すなわち、このコードではxの値が波カッコと置き換わって出力されるということです。
そして、次の行で、xの値がデクリメントされます。
すなわち、5が4になったというわけですね。
ここまでがコードブロックで、ここまでのコードが繰り返されるというわけです。
whileループを繰り返す条件は、x > 0でしたから、
デクリメントができなくなるのは、x = 1のときですね。
x = 0は式の条件を満たしておらず、Falseと評価されるからです。
Falseと評価された時点で、コードブロック内の処理はストップします。
そして、次の行の処理へいき、
こんにちはという文字列が出力されます。
したがって出力結果は、
5
4
3
2
1
こんにちは
となります。
今回の例ではせっかくメソッドが出てきたので、メソッドの使い方等、一度このタイミングで復習しておきましょう。
Pengさんの記事でわかりやすくメソッドについて解説されているので、おすすめです。
ぜひ参考にしてください。
whileループでは、式で条件を指定し、Trueと評価されれば反復処理を行いますが、その式が永遠にTrueと評価され続ける可能性もあります。
このような場合は、コードが終了しないので無限ループと言われています。
以前、Trueも立派な値であることは過去に学習したと思います。
whileループにおける式には、Trueと値を入力すれば、もれなく無限ループの完成です。
こちらのコードの例をご覧ください。
while True:
print("北斗百裂拳")
こちらはコンピュータが壊れない限り永遠に北斗百裂拳を出力し続けるコードです。
勇気のある方はぜひ出力してpythonの恐ろしさを感じてください。
break
ここまで学習してきたらふと疑問に思うことがあると思います。
反復処理止める方法はないんですか、と。
もちろん存在します。
自分が反復処理を止めたいタイミングで止めることができます。
止めるために必要なキーワードが、
breakです。
実際にbreakを使用したコードを見てみましょう。
while True:
print("北斗百裂拳")
break
さて、このコードを出力してみてください。
出力されたのは北斗百裂拳1行のみではないですか?
そうです。
コードブロックの最後の行にbreakを入力することによって、
コードブロックの処理を1回のみにすることができるのです。
無限に北斗百裂拳を食らう直前に、
breakしておけば、
1発のみに抑えることができます。
まとめ
本日の内容は以上です。
ここまで学習すると、次の記事の内容がよくわかると思うのでぜひ読んでみてください。
こちらの記事は、私たちが勉強会で議論した結果をまとめたものとなっています。
Pengさんが丁寧に記事を書いたので、大変分かりやすいと思います。
分からないことがあれば、連絡ください。
今回のコードはGitHubの方に載せておきますので、
ぜひ活用してください。
GitHubでの閲覧方法は次の記事を参考にしてください。
それではまた次回お会いしましょう。
おぎー
“【Python初心者】ループ②(whileループ・break)” への1件の返信