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))
    例えば身長167cmで体重60kgであれば
      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