Skip to content

step4 if式を用いた条件分岐による判定

Step 4 では、F#における条件分岐の基本であるif式の使い方を学び、数当てゲームの判定ロジックを作成する。

if 式の基本構文

F#のif式は、条件に応じて異なる値を返す式である。基本的な構文は以下の通りだ。

if 条件式 then
条件式が真のときに返す値
else
条件式が偽のときに返す値

ifthenelseは予約語である。 条件式はbool型(真偽値)の値を返す必要がある。 then節とelse節の値の型は一致していなければならない。

例えば、入力された値がanswerと一致するかどうかを判定し、異なる文字列を返すif式は以下のようになる。

let answer = 42
let input = 24
let result =
if input = answer then
"正解!"
else
"不正解!"
printfn "%s" result

この例では、inputanswerが等しいかどうかを比較し、その結果に応じてresultに異なる文字列を代入している。

複数の条件分岐

elifキーワードを使用すると、複数の条件を扱うことができる。

if 条件式1 then
条件式1が真のときに返す値
elif 条件式2 then
条件式2が真のときに返す値
else
どの条件式も偽のときに返す値

例えば、入力された値がanswerより大きいか、小さいか、等しいかを判定するif式は以下のようになる。

let answer = 42
let input = 24
let result =
if input > answer then
"大きすぎます!"
elif input < answer then
"小さすぎます!"
else
"正解!"
printfn "%s" result

Program.fs への適用

それでは、Program.fsを書き換えて、数当てゲームの判定ロジックを実装してみよう。 inputNumberanswerと等しいか、そうでないかをif式で判定し、異なるメッセージを出力する。

let answer = 42
printfn "正解は%dです" answer
printfn "1から100までの数字を入力してください。"
let inputNumber = stdin.ReadLine() |> int
let result =
if inputNumber > answer then
"大きすぎます!"
elif inputNumber < answer then
"小さすぎます!"
else
"正解!"
printfn "%s" result

まとめ

このステップでは、以下の内容を学んだ。

  • if式を使った条件分岐
  • =演算子を使った比較(TypeScript の===に相当)
  • <>演算子を使った不等価比較(TypeScript の!==に相当)
  • elifを使った複数の条件分岐
  • >演算子、<演算子を使った大小比較
  • F#のif式は値を返す式であること

次のステップでは、match式を使った条件分岐について学ぶ。