前へ 上へ 次へ
前へ 上へ 次へ
8 選択処理(case 構文)
Fortran では、複数の選択肢から一つを選ぶ方法として、case 構文が用意されています。 if 構文でも同じ処理が可能ですが、よりわかりやすい記述が可能です。
select case (式) [case 選択肢 ブロック]... end select
※ 式は integer, character もしくは logical 型のスカラーでなければなりません。
case 文は例えば以下のように記述できます。
case(1)
もしくは以下のように範囲を示す事も可能です。
case(下限:上限)
※ 上限と下限のどちらかを省略することが可能です。
(両方を省略することは許されていません。)
下限が省略された場合には上限以下の場合となり、上限が省略された場合には下限以上となります。
また、以下のようにカンマで区切った並びとして指定することも可能です。
case(1, 2, 5:10, 20)
その他のどの場合(case)にも該当しない場合の記述を行う場合は以下のように行います。
case default
【case 構文の例】 select case (n) ! n は整数 case (:-1) ! -1 以下の場合(負の数) fugo = -1 case (0) ! ゼロ fugo = 0 case (1:) ! 正の数(正の数) fugo = 1 end select 【case defaultを用いる例】 select case(ch) ! ch は文字 case ('p', 'P') call print_file() case ('e', 'E') call edit_file() case default print *, "Unknown command '" // trim(ch) // "' specified..." end select
8.1 ★ 練習課題:入力された数字(自然数)を英語で表示する
自然数(1 以上の整数)を1つ入力して、対応する英単語を出力するプログラムを作成して下さい。 但し出力する英語は one, two, three, four, five までとし、それ以上の場合は、large number と出力するものとします。
入力値 | 出力メッセージ |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 以上 | large number |
処理手順例
-
変数を宣言する
例)
integer n - 自然数を入力してほしい旨を画面に出力する(print 文)
- 自然数をキーボードから入力する(read 文)
-
入力された値に基づき英単語を表示する(case 構文)
例)
select case(n)
case (1)
print *, "one"
case (2)
print *, "two"
...
case default
print *, "large number"
end select
実行例: Enter a natural number: 3 three[ kadai-natural-number.f90 ] - 入力された数字(自然数)を英語で表示するプログラム例
前へ 上へ 次へ