Fortran Builder Logo
Fortran Builder




Fortran Consulting Logo
Fortran
コンサルティング




NAG Library Image
NAG Fortran
ライブラリ
関連情報

ナビゲーション:前へ   上へ   次へ

7 条件分岐(IF 文)

条件分岐は if 文により行う事ができます。 条件が真の場合のみの処理の記述は以下のように行います。
if (条件) then
  条件が真の場合の処理
end if

処理が 1 文で済む場合は以下のようにすることも可能です。

if (条件) 処理

偽の場合の処理も記述する場合には else を用いて以下のように記述します。

if (条件) then
  条件が真の場合の処理
else
  条件が偽の場合の処理
end if

条件がいくつもある場合には以下のような記述も可能です。

if (条件 1) then
  条件 1 が真の場合の処理
else if (条件 2) then
  条件 1 が偽で条件 2 が真の場合の処理
else if (条件 n) then
  条件 1 から条件 n-1 が偽で条件 n が真の場合の処理
else
  条件 1 から条件 n がすべて偽の場合の処理
end if
[ if.f90 ] - 条件判断を行うサンプル
program if
  implicit none
  integer a, b
  print *, "Please enter two numbers:"
  read *, a, b
  if ( a > b ) then
    print *, "a is greator than b!"
  else if ( a == b ) then
    print *, "a is equal to b!"
  else
    print *, "a is less than b!"
  end if
end program if

出力例:
 Please enter two numbers:
3 4
 a is less than b!

比較は比較演算子を用いて行いますが、以下に利用可能な比較演算子を示します。

比較演算子  意味 用例
.lt.もしくは < より小さい a.lt.b もしくは a<b
.le.もしくは <= より小さいか等しい a.le.10 もしくは a<=10
.eq.もしくは == 等しい a.eq.100 もしくは a==100
.ne.もしくは /= 等しくない a.ne.0 もしくは a/=0
.gt.もしくは > より大きい a.gt.30 もしくは a>30
.ge.もしくは >= より大きいか等しい a.ge.30 もしくは a>=30

複数の条件を結合するための論理演算子と、条件を否定するための論理演算子が用意されています。 以下に論理演算子を優先度の高い順に示します。 (優先度の高いものから先に評価されます。)

論理演算子  意味 & 意味
.not. 以外 .not. a==b
.and. かつ a==b .and. b==c
.or. もしくは a==b .or. b==c
.eqv. 論理値が等しい a<0 .eqv. b<0 (a と b の符号が同じという比較例)
.neqv. 論理値が等しくない a<0 .neqv. b<0 (a と b の符号が一致しないという比較例)

※ 補足:論理値同士の比較には == や /= を使えません。 .eqv. もしくは .neqv. を利用します。

以下に条件式の例を示します。

[ comp.f90 ] - 条件式のサンプル

program comparison
  implicit none
  integer,parameter :: my_height = 167
  integer,parameter :: my_weight = 60
  integer your_height, your_weight
  print *, "Please enter your height in cm:"
  read *, your_height
  print *, "Please enter your weight in kg:"
  read *, your_weight
  if ( my_height > your_height .and. my_weight > your_weight ) then
    print *, "I am TALLER and HEAVIER than you!"
  end if
end program comparison

出力例:
 Please enter your height in cm:
160
 Please enter your weight in kg:
56
 I am TALLER and HEAVIER than you!

7.1 ★ 練習課題:BMI 値を求める

身長(cm)と体重(kg)を入力して、それらの値から BMI 値を求め出力して下さい。 更に求められた BMI 値によりそれぞれ以下のようなメッセージを出力して下さい。
BMI 値 出力メッセージ
18.5 未満 Yasegimidesu
18.5 以上 25.0 未満 Futsuudesu
25.0 以上 30.0 未満 Futorigimidesu
30.0 以上 Futorisugidesu
BMI 値計算のための式は以下の通りです。 ※ ここで身長がメートル単位であることに注意して下さい。
  BMI 値 = 体重(kg)÷(身長(m)× 身長(m))
    例えば身長 167 cmで体重 60 kgであれば
    BMI 値 = 60 ÷(1.67 × 1.67)
    となります。

処理手順例

  1. 変数を宣言する
     例)
     real bmi, h, w
  2. 身長(cm)を入力してほしい旨を画面に出力する(print 文)
  3. 身長をキーボードから入力する(read 文)
  4. 体重(kg)を入力してほしい旨を画面に出力する(print 文)
  5. 体重をキーボードから入力する(read 文)
  6. 公式を用いて BMI 値を計算してその結果を答えを格納する変数に代入する
     例)
     h = h/100.0 ! センチメートルをメートルに変換
     bmi = w/(h*h)
  7. BMI 値を画面に出力する(print 文)
  8. 4つの条件(Yasegimidesu, Futsuudesu, Futorigimidesu, Futorisugidesu)のうちで該当するメッセージを表示する(if 文)
実行例:
 Enter SHINCHO(cm):
170
 Enter TAIJU(kg):
60
 BMI =  20.7612438
 Futsuudesu
[ kadai-bmi.f90 ] - BMI 値を求めるプログラム例


ナビゲーション:前へ   上へ   次へ

Results matter. Trust NAG.
Privacy Policy | Trademarks