'else' および 'elif' ステートメントとは
テスト式が False
のときにも、プログラムでコードの一部を実行したい場合はどうすればよいでしょうか。 または、別のテスト式を追加したい場合はどうすればよいでしょうか。 Python には、より複雑な if
ステートメントを作成するために使用できる別のキーワードとして、else
と elif
があります。 if
、else
、elif
を組み合わせて使用すると、複数のテスト式とステートメントを実行する複雑なプログラムを記述できます。
else
を使用する
if
ステートメントを使用すると、テスト式が True
の場合にのみプログラムの本体が実行されることがわかりました。 テスト式が False
の場合に実行されるコードを追加するには、else
ステートメントを追加する必要があります。
前のセクションの例を適応させましょう。
a = 27
b = 93
if a >= b:
print(a)
この例では、a
が b
以上でない場合、何も起こりません。 代わりに、テスト式が False
の場合に b
を印刷するとします。
a = 27
b = 93
if a >= b:
print(a)
else:
print(b)
出力: 93
テスト式が False
の場合、if
ステートメントの本体のコードはスキップされ、else
ステートメントからプログラムの実行が継続されます。 if/else
ステートメントの構文は常に次のようになります。
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif
を使用する
Python では、キーワード elif
は else if の短縮形です。 elif
ステートメントを使用すると、プログラムに複数のテスト式を追加できます。 これらのステートメントは記述されている順序で実行されるため、プログラムは最初の if
ステートメントが False
の場合にのみ elif
ステートメントに入ります。 次に例を示します。
a = 27
b = 93
if a <= b:
print("a is less than or equal to b")
elif a == b:
print("a is equal to b")
出力: a is less than or equal to b
このバリエーションでは、コード ブロックの elif
ステートメントは、if
ステートメントが True
であるため、実行されません。
if/elif
ステートメントの構文は次のとおりです。
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if
、elif
、else
の各ステートメントを組み合わせる
if
、elif
、else
の各ステートメントを組み合わせると、複雑な条件付きロジックを含むプログラムを作成できます。 elif
ステートメントは if
条件が false
の場合にのみ実行されることを思い出してください。 また、if
ブロックに追加できる else
ブロックは 1 つだけですが、elif
ブロックは複数追加できることにご注意ください。
if
、elif
、else
ステートメントを含む例を見てみましょう。
a = 27
b = 93
if a < b:
print("a is less than b")
elif a > b:
print("a is greater than b")
else:
print ("a is equal to b")
3 種類のステートメントをすべて使用するコード ブロックの構文は次のとおりです。
if test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
else:
# statement(s) to be run
入れ子になった条件付きロジックを使用する
Python では、入れ子になった条件付きロジックもサポートされています。つまり、if
、elif
、else
の各ステートメントを入れ子にして、さらに複雑なプログラムを作成できます。 条件を入れ子にするには、内側の条件をインデントします。同じインデント レベルの全体が同じコード ブロックで実行されます。
a = 16
b = 25
c = 27
if a > b:
if b > c:
print ("a is greater than b and b is greater than c")
else:
print ("a is greater than b and less than c")
elif a == b:
print ("a is equal to b")
else:
print ("a is less than b")
このコードでは、出力 a is less than b
が生成されます。
入れ子になった条件付きロジックは、各コード ブロック内の通常の条件付きロジックと同じ規則に従います。 構文の例を次に示します。
if test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
elif test_expression:
# statement(s) to be run
if test_expression:
# statement(s) to be run
else:
# statement(s) to be run
else:
# statement(s) to be run