Pythonのforループでelse節を使う方法をわかりやすく解説
Pythonでは、forループやwhileループにelse節を組み合わせることができます。これは他の多くのプログラミング言語にはない独特な機能です。
ループに付いたelseブロックは、ループのすべての反復処理が正常に完了した後、プログラムの流れがループ本体を抜ける直前に実行されます。break文によってループが途中で中断された場合には、elseブロックは実行されないという点が重要なポイントです。
基本構文
while expr==True:
# exprがTrueである間、繰り返し実行されるステートメント
else:
# 反復処理がすべて終わった後に実行されるステートメント# プログラムがループ本体を抜けた後に実行される部分
forループでの使用例
次の例では、range(6)を使って0から5までの数値を出力した後、elseブロック内のメッセージが表示されます。
for x in range(6):
print(x)
else:
print("else block of loop")
print("loop is over")実行結果
このコードを実行すると、以下のような出力が得られます。
0 1 2 3 4 5 else block of loop loop is over
else節の実用的な使いどころ
この機能は一見不思議に思えますが、実際には便利な場面があります。たとえば、リストの中から特定の値を探す処理では、値が見つかってbreakで抜けた場合はelseがスキップされ、最後まで見つからなかった場合だけ「見つかりませんでした」という処理をelseブロックに書くことができます。
numbers = [1, 3, 5, 7, 9]
for n in numbers:
if n == 4:
print("見つかりました")
break
else:
print("見つかりませんでした")このように、「ループが中断されずに完走したときだけ実行する」という条件分岐を、フラグ変数を使わずにすっきりと記述できるのがfor-else構文の大きな利点です。
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
C言語の「else ifラダー」条件文の使い方を徹底解説!基本構文から実行例まで
else ifラダー(階段状条件分岐)とは?「else ifラダー」とは、複数の条件の中から該当するものを選んで処理を実行する、いわゆる多方向分岐を記述する際に最も一般的に使われる方法です。条件式を上から順番に評価していき、最初に真(true)となった条件に対応する処理だけが実行され、残りの分岐はすべてスキップされます。基本構文else ifラダーの基本的な書き方は以下の通りです。if (condition1) stmt1; else if (condition2) stmt2; - - - - - - - - - - else if (conditio