'else' および 'elif' ステートメントとは

完了

テスト式が False のときにも、プログラムでコードの一部を実行したい場合はどうすればよいでしょうか。 または、別のテスト式を追加したい場合はどうすればよいでしょうか。 Python には、より複雑な if ステートメントを作成するために使用できる別のキーワードとして、elseelif があります。 ifelseelif を組み合わせて使用すると、複数のテスト式とステートメントを実行する複雑なプログラムを記述できます。

else を使用する

if ステートメントを使用すると、テスト式が True の場合にのみプログラムの本体が実行されることがわかりました。 テスト式が False の場合に実行されるコードを追加するには、else ステートメントを追加する必要があります。

前のセクションの例を適応させましょう。

a = 27
b = 93
if a >= b:
    print(a)

この例では、ab 以上でない場合、何も起こりません。 代わりに、テスト式が 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 では、キーワード elifelse 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

ifelifelse の各ステートメントを組み合わせる

ifelifelse の各ステートメントを組み合わせると、複雑な条件付きロジックを含むプログラムを作成できます。 elif ステートメントは if 条件が false の場合にのみ実行されることを思い出してください。 また、if ブロックに追加できる else ブロックは 1 つだけですが、elif ブロックは複数追加できることにご注意ください。

ifelifelse ステートメントを含む例を見てみましょう。

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 では、入れ子になった条件付きロジックもサポートされています。つまり、ifelifelse の各ステートメントを入れ子にして、さらに複雑なプログラムを作成できます。 条件を入れ子にするには、内側の条件をインデントします。同じインデント レベルの全体が同じコード ブロックで実行されます。

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