第8章 条件処理

8.4 if – else if – else文

 前項では「もし○○○ならば、×××する。そうでなければ△△△する」という条件分岐を解説しましたが、「そうでなければ△△△する」の部分にさらに条件が追加され、「もし○○○ならば×××する。そうでなくもし□□□ならば◇◇◇する。どちらでもなければ△△△する」というような、さらに複数の条件がある場合は、if – elif – else文を使います。

8.4.1 if elif -else文の基本構文

if-elif(エルスイフ)-else文の基本構文は下記のようになります。

書式:if-elif-else基本構文

if – elif – else文の処理の流れは以下のようになります。
もし条件式Aが合っていたら、処理①を行う。
条件式Aが合っていないが条件式Bが合っている場合は処理②を行う。
条件式Aも条件式Bも合っていない場合は処理③を行う。

図 8.4.1.1は、if-elif-else文をフローチャートにしたものです。

図 8.4.1.1 : if-elif-else基本構文の処理フロー

ポイント

・3つ以上の条件に応じた処理を行う場合はif-elif-else文を使う。

8.4.2 複数条件式で数値の大小を比較するプログラム

キーボードからの入力値に応じて、if-elif-else文の各ブロック内の処理を確認します。

ソース・フォルダ:/Desktop/Python入門テキスト
ファイル名    :第8章.ipynb
アクセスURL   :http://localhost:8888/notebooks/Desktop/Python入門テキスト/第8章.ipynb

➢ 第8章.ipynb/ 8.4.2 複数条件式で数値の大小を比較するプログラム

    # 比較用の値を管理する変数の宣言
    num1 = 5
    num2 = 3
    
    #if文①の開始 
    if num2 > num1 :
        print(‘num1よりnum2の方が大きいです。’)
    elif num2 < num1 :
        print(‘num1よりnum2の方が小さいです。’)
    else :
        print( ‘num1とnum2の数値は同じです。’)
    
    #num2の値を更新する 
    num2 = 5
    
    #if文②の開始  
    if num2 > num1 :
        print(‘num1よりnum2の方が大きいです。’)
    elif num2 < num1 :
        print(‘num1よりnum2の方が小さいです。’)
    else :
        print( ‘num1とnum2の数値は同じです。’)
    
	

実行結果

解説
 2、3行目で変数num1、num2を宣言しています。

 6~11行目で、if – elif -else文の範囲になります。6行目のif文で変数num1の値5よりnum2の値3の方が大きいかどうかを判断し、num2の方が大きければ7行目の処理が実行されます。
 6行目の条件を満たさない場合次の8行目のelif文の判定を行い、今度は逆にnum1よりもnum2の値が小さいかどうかを判断し、num2の方が小さければ9行目の処理が実行されます。
 最後にelseブロックは、6、8行目の条件を両方満たさない場合に実行されます。

 6行目の条件式はfalseであり8行目の条件式はtrueであるため、9行目の処理が実行されます。

 続いて14行目ではnum2の値を5に更新します。

 17~22行目では6~11行目と同じ内容のif – elif -else文をもう一度、実行していますが、num2の値5が、num1の値5と等しくなったため、17、19行目の条件式を両方満たさなず、22行目の処理が実行されます。

図 8.4.2.1 : If-elIf-else構文のフローチャート


NEXT>> 8.5 ネストしたif文