step4 if式を用いた条件分岐による判定
Step 4 では、F#における条件分岐の基本であるif式の使い方を学び、数当てゲームの判定ロジックを作成する。
if 式の基本構文
F#のif式は、条件に応じて異なる値を返す式である。基本的な構文は以下の通りだ。
if 条件式 then 条件式が真のときに返す値else 条件式が偽のときに返す値if、then、elseは予約語である。
条件式はbool型(真偽値)の値を返す必要がある。
then節とelse節の値の型は一致していなければならない。
例えば、入力された値がanswerと一致するかどうかを判定し、異なる文字列を返すif式は以下のようになる。
let answer = 42let input = 24
let result = if input = answer then "正解!" else "不正解!"
printfn "%s" resultこの例では、inputとanswerが等しいかどうかを比較し、その結果に応じてresultに異なる文字列を代入している。
複数の条件分岐
elifキーワードを使用すると、複数の条件を扱うことができる。
if 条件式1 then 条件式1が真のときに返す値elif 条件式2 then 条件式2が真のときに返す値else どの条件式も偽のときに返す値例えば、入力された値がanswerより大きいか、小さいか、等しいかを判定するif式は以下のようになる。
let answer = 42let input = 24
let result = if input > answer then "大きすぎます!" elif input < answer then "小さすぎます!" else "正解!"
printfn "%s" resultProgram.fs への適用
それでは、Program.fsを書き換えて、数当てゲームの判定ロジックを実装してみよう。
inputNumberがanswerと等しいか、そうでないかをif式で判定し、異なるメッセージを出力する。
let answer = 42printfn "正解は%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式を使った条件分岐について学ぶ。