Kotlin/Kotlin

[Kotlin] if / when

Huijinn 2024. 2. 3. 19:43

ifλž€

ifλŠ” 쑰건문을 λ‚˜νƒ€λ‚΄λŠ” ν‚€μ›Œλ“œλ‘œ, ν”„λ‘œκ·Έλž¨μ—μ„œ 쑰건에 따라 νŠΉμ •ν•œ μ½”λ“œ 블둝을 μ‹€ν–‰ν•˜λ„λ‘ ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. if문의 기본적인 κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

if (쑰건) {
    // 쑰건이 true일 λ•Œ μ‹€ν–‰λ˜λŠ” μ½”λ“œ 블둝
} else {
    // 쑰건이 false일 λ•Œ μ‹€ν–‰λ˜λŠ” μ½”λ“œ 블둝
}

 

μ½”ν‹€λ¦°μ˜ if

μ½”ν‹€λ¦°μ˜ ifλŠ” ν‘œν˜„μ‹(expression)이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μžλ°”μ™€ 달리 값을 λ°˜ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이것은 μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μž‘μ„±ν•˜κ³  λ³€μˆ˜λ₯Ό μ΄ˆκΈ°ν™”ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.

// statement
val a: Int = 100
val b: Int = 200
var c: Int

if (a > b) {
  c = a
} else {
  c = b
}

print(c) // 200
// expression
val a: Int = 100
val b: Int = 200
var c: Int

c = if (a > b) {
  a
} else {
  b
}

print(c) // 200

 

Checking for Contain

μ•„λž˜ μ½”λ“œλŠ” μ£Όμ–΄μ§„ μ •μˆ˜ aκ°€ λ°°μ—΄ arrayOf(100, 200, 300) μ•ˆμ— ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜κ³ , κ·Έ 결과에 따라 λ‹€λ₯Έ λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

val a: Int = 100

if (a in arrayOf(100, 200, 300)) {
	print("포함")
} else {
	print("λΆˆν¬ν•¨")
}
// 포함

 


whenμ΄λž€

μ½”ν‹€λ¦°μ˜ when은 μ—¬λŸ¬ κ°€μ§€ 쑰건을 κ°„κ²°ν•˜κ²Œ μ²˜λ¦¬ν•˜λŠ” ꡬ문으둜, μžλ°”μ˜ switch 문을 λŒ€μ²΄ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. when은 λ‹€μ–‘ν•œ ν˜•νƒœλ‘œ μ‚¬μš©λ˜μ–΄ λ‹€μ–‘ν•œ 쑰건을 λ‹€λ£° 수 μžˆμŠ΅λ‹ˆλ‹€. 기본적인 when의 κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

when (쑰건) {
    κ°’1 -> μ‹€ν–‰ν•  μ½”λ“œ1
    κ°’2 -> μ‹€ν–‰ν•  μ½”λ“œ2
    κ°’3, κ°’4 -> μ‹€ν–‰ν•  μ½”λ“œ3
    in λ²”μœ„ -> μ‹€ν–‰ν•  μ½”λ“œ4
    else -> κΈ°λ³Έ λ™μž‘ μ½”λ“œ
}

 

ifλ₯Ό when으둜 λ°”κΏ”λ³΄μž

when을 μ‚¬μš©ν•˜μ—¬ ifλ₯Ό κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

// if
val score = 85

var grade = ""

if (score >= 90) {
    grade = "A"
} else if (score >= 80) {
    grade = "B"
} else if (score >= 70) {
    grade = "C"
} else {
    grade = "D"
}

println("Grade: $grade") // B
// when
val score = 85

val grade = when {
    score >= 90 -> "A"
    score >= 80 -> "B"
    score >= 70 -> "C"
    else -> "D"
}

println("Grade: $grade") // B

 

when의 ν‘œν˜„μ‹(expression)κ³Ό λ¬Έ(statement)

when은 ν‘œν˜„μ‹(expression)μ΄λ‚˜ λ¬Έ(statement)으둜 μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

// expression
val x = 5

val result = when (x) {
    1 -> "One"
    2 -> "Two"
    else -> "Other"
}

println(result) // Other
// statement
val x = 5

when (x) {
    1 -> println("One")
    2 -> println("Two")
    else -> println("Other")
}
// Other