elif

ネストされた条件は非常に深くなりがちです。これはコードの読みやすさを損ない、プログラマは多くのネストされた条件(一般的にネストが深すぎるコード)を避ける傾向にあります。Pythonでは、elseの後にif文を書くことを避けるために、elifという構文が提供されています:

if name == 'Alice':
    print('Hey there!')
else:
    if name == 'Bob':
        print('How are you doing?')
    else:
        if name == 'Anna':
            print('Hello, Anna')
        else:
            print('Hi!')
if name == 'Alice':
    print('Hey there!')
elif name == 'Bob':
    print('How are you doing?')
elif name == 'Anna':
    print('Hello, Anna')
else:
    print('Hi!')

これらの2つのプログラムはまったく同じ動作をします。個別の挨拶メッセージを出力し、多くのif/else文を含んでいます。しかし、最初のプログラムは多くのネストされたif/elseブロックを持つのに対し、2番目のプログラムはelse ifを表すelif文を使用しています。

チャレンジ

0から100までの数値である成績が与えられたとき、その成績がアメリカのレターグレード(A、B、C、D、F)のどれに相当するかを知りたいと思います。

注意: 範囲チェックのみのif文だけを使用しないでください。別の条件をチェックする際にはelifを使用してください。

数値の成績

レターグレード

90-100

A

80-89

B

70-79

C

60-69

D

0-59

F

この変換を行うプログラムを書いてください。

入力

出力

81

B

100

A

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue