조건식: if... then...else(F#)
if...then...else 식은 주어진 부울 식에 따라 코드의 각기 다른 분기를 실행합니다. 어떤 분기를 실행하는가에 따라 계산 결과로 구한 값이 서로 다를 수 있습니다.
if Boolean-expression then expression1 [ else expression2 ]
설명
위 구문에서 부울 식의 결과가 true이면 expression1이 실행되고, 그렇지 않으면 expression2가 실행됩니다.
다른 언어와 달리 if...then...else 구문은 문이 아니라 식입니다. 즉, 이 구문은 실행되는 분기의 마지막 식을 계산한 결과인 값을 생성합니다. 각 분기에서 생성되는 값의 형식은 서로 일치해야 합니다. 명시적 else 분기가 없는 경우 해당 형식은 unit입니다. 따라서 then 분기의 형식이 unit이 아닌 다른 형식인 경우 동일한 반환 형식을 갖는 else 분기가 있어야 합니다. if...then...else 식을 함께 연결하는 경우 elif 키워드를 else if 대신 사용할 수 있습니다. 그 의미는 서로 같습니다.
예제
다음 예제에서는 if...then...else 식을 사용하는 방법을 보여 줍니다.
let test x y =
if x = y then "equals"
elif x < y then "is less than"
else "is greater than"
printfn "%d %s %d." 10 (test 10 20) 20
printfn "What is your name? "
let nameString = System.Console.ReadLine()
printfn "What is your age? "
let ageString = System.Console.ReadLine()
let age = System.Int32.Parse(ageString)
if age < 10
then printfn "You are only %d years old and already learning F#? Wow!" age