μλ°μ€ν¬λ¦½νΈμ 쑰건문μ λν λ΄μ©μ λλ€! π
Conditionals
)μλ°μ€ν¬λ¦½νΈμμλ μ½λμ μ§νμ μ μ΄ν μ μλ κΈ°λ₯μ΄ μλ€. ν΄λΉ μ μ΄ λ°©μμ νλ¦ μ€κ°μ 쑰건μ μ μνμ¬ νλ¦μ ν΅μ νλμ§ μλλ©΄ ν΄λΉ νλ¦μ λ°λ³΅μ μΌλ‘ μ§ννλλ‘ ν΅μ ν μλ μλ€.
μμ κ°μ΄ μ£Όμ΄μ§ 쑰건μ λ°λΌ μ½λλ₯Ό μ μ΄νλ ꡬ문μ μ μ΄λ¬Έμ΄λΌκ³ νλ€.
μμμ μΈκΈν λ―μ΄, μ μ΄λ¬Έ(
control statements
)μ νΉμ ν κ²°κ³Όλ₯Ό λμΆν΄λ΄κΈ° μν΄μ 쑰건μ μ μνμ¬ μ‘°κ±΄μ λΆν©νλ μλ°λλ κ²°κ³Όλ₯Ό λμΆνκ±°λ, ꡬκ°μ λ°λ³΅ λ±μ μ λνλ ꡬ문μ΄λΌκ³ ν μ μλ€.
μ μ΄λ¬Έμλ μ΄λ² ν¬μ€ν μμ λ€λ£° 쑰건문과 λ°λ³΅λ¬Έμ΄ ν¬ν¨λλ©° νλ¦μ μ μ΄νλ ꡬ문μ΄κΈ° λλ¬Έμ, μμ°¨μ μΌλ‘ μ§νλλ νλ¦μ΄ μ μ΄λ¬ΈμΌλ‘ μΈν΄ μ΄λ»κ² μ νλλμ§μ λν μ΄ν΄κ° νμνλ€!π μΆμ²
κ·Έ μ€ μ΄λ²μ λ€λ£° 쑰건문(conditionals
)μ μ½λ νλ¦ μ€κ°μ 쑰건μ μ μνμ¬ νλ¦μ ν΅μ νλ μ μ΄λ¬Έμ μΌμ’
μ΄λ€.
λκ° μ‘°κ±΄λ¬Έμ if
쑰건문μ μ¬μ©νλ©° μ΄μΈμλ switch
쑰건문λ μ¬μ©μ νλλ°, μ΄λ² ν¬μ€ν
μμλ ν΄λΉ ꡬ문λ€μ μ°¨μ΄μ κ³Ό ꡬ쑰μ λν μ΄ν΄λ₯Ό ν κ²μ΄λ€.
if
λ¬Έμ 무μμΈκ°?μμ΄ μ΄νμμ μλ―Ένλ if
λ₯Ό μ΄ν΄νμ λ μ°λ¦¬λ κ°λ¨ν μλ°μ€ν¬λ¦½νΈμ if
λ¬Έμ κΈ°λ₯μ λν μ΄ν΄λ₯Ό ν μ μλ€.
if
λ¬Έμ λ§ κ·Έλλ‘ λ§μ½μ ~ λ©΄ μ΄λΌλ 쑰건μ μ μνμ¬ ν΄λΉ 쑰건μ λΆν©νλ©΄ true
λ₯Ό λ°ννμ¬ μμ±ν ꡬ문μ μ€ννκ³ , λ°λμ κ²½μ° μ΄μ΄μ μ½λλ₯Ό μμ°¨μ μΌλ‘ μ§ννκ±°λ λ€λ₯Έ 쑰건μ λ€μκΈ μ μνλ λ±μ νλ¦μ ν΅μ νλ κΈ°λ₯μ νλ ꡬ문μ΄λ€.
ν΄λΉ μ μλ₯Ό μ΄ν΄νλ©΄ μ΄μ΄μ§λ if...else
λ¬Έλ²μ λν μ¬νμ΄λ ꡬ쑰μ λν μ΄ν΄κ° μ½κ² λ κ²μ΄λ€. κ·ΈλΌ μ΄μ΄μ if...else
λ¬Έμ λ¬Έλ²μ λν΄ μμ보μ.
if...else
λ¬Έμ λ¬Έλ²if...else
λ¬Έμ ν¬κ² μΈ κ°μ§ λ¨κ³λ‘ μ΄λ£¨μ΄μ§λ€.
μ°μ 쑰건μ μ μνκ³ κ²°κ³Ό κ°μ΄ true
μΌ κ²½μ° κ΅¬λ¬Έμ μ€ννλ if
λ¬Έ, μμ μ‘°κ±΄μ΄ false
μΈ κ²½μ° μ€νν λ΄μ©μ μμ±νλ else
λ¬Έ, λ§μ§λ§μΌλ‘ μμ μ‘°κ±΄μ΄ false
μΌ κ²½μ° μλ‘μ΄ μ‘°κ±΄μ μ μνλ else if
λ¬Έμ΄ μλ€.
ν΄λΉ λΆλΆμ μμ μ½λλ‘ μ΄ν΄λ³΄μ
if (condition1) { // if
statement1
} else if (condition2) { // else if
statement2
} else { // else
statement3
}
μ μμ μ½λλ₯Ό 보면 쑰건μ μ΄ 2κ°μ§κ° μ μλμ΄ μκ³ , μ€ν ꡬ문μ 3κ°μ§κ° μμ±λμ΄ μλ€.
λ¨Όμ if
λΆν° 보면 if
λ₯Ό μμ±νκ³ μκ΄νΈ(()
)λ₯Ό μ΄μ΄ ν΄λΉ μκ΄νΈμ 쑰건(condition1
)μ μμ±ν λ€μ μ€κ΄νΈ({}
)λ₯Ό μ΄μ΄ μ€κ΄νΈ μμ ꡬ문(statements1
)μ μμ±νλ ꡬ쑰λ₯Ό κ°λλ€.
μ΄μ΄μ λμ€λ else if
λ if
μ κ°μ ꡬ쑰μΈλ°, 쑰건(condition2
)μ μ μνκ³ μ€ν ꡬ문(statements2
)μ μμ±νμΌλ©° λ³λ€λ₯Έ λ³νλ νμΈλμ§ μλλ€.
κ·Έλ¬λ else
μ κ²½μ° μ‘°κ±΄ λΆλΆμ΄ μλ΅λ κ²μ μ μ μλ€. κ·Έ μ΄μ λ else
λ¬Έμ΄ μμ λͺ¨λ 쑰건λ€μ λΆν©νμ§ μλ λ°λμ κ²½μ°λ₯Ό μμ νκΈ° λλ¬Έμ λ³λλ‘ μ‘°κ±΄μ μμ±νμ§ μμλ λλ κ²μ΄λ€.
μ μμ± λ°©λ²μ μΈ κ°μ§ μμλ₯Ό λͺ¨λ νμ©νμμ λ μμ±ν μ μλ λ°©μμ΄κ³ , else if
μ else
λ νμμ μΈ μμκ° μλλ€. κ·Έλ κΈ° λλ¬Έμ, else if
μ else
κ° μλ΅ κ°λ₯ν κ²½μ°λ₯Ό λ€μμ μμμμ μμ보μ.
// nμ΄ 5 μ΄μμΈ κ²½μ° trueλ₯Ό μΆλ ₯νλ 쑰건문
let n = 3
if (n >= 5) {
console.log(true)
}
console.log(`none`) // output : `none`
μ μμμ κ²½μ° μ‘°κ±΄(n >= 5
)μ΄ λ§μ‘±νλ κ²½μ° true
λ₯Ό λ°ννκ³ , μλ κ²½μ°μλ νλ¦μ μ΄μ΄μ μ§ννλ©° if
λ¬Έ λ°μ console.log()
λ₯Ό μ€ννμ¬ none
μ μΆλ ₯νλ€. μ΄λ κ² λ°λμ κ²½μ°λ₯Ό λ³λλ‘ κ·μ νμ§ μμλ λλ κ²½μ°μλ else
μ else if
λ₯Ό μλ΅ν μ μλ€.
λν else
λ§μ μΆκ°ν΄μλ ꡬ문μ μμ±ν μ μλ€.
// nμ΄ 5 μ΄μμΈ κ²½μ° trueλ₯Ό μΆλ ₯νκ³ , λ°λμ κ²½μ° falseλ₯Ό μΆλ ₯νλ 쑰건문
let n = 3
if (n >= 5) {
console.log(true)
} else {
console.log(false)
}
μ΄ κ²½μ°μλ else
λ¬Έμ΄ n
μ΄ μ 쑰건μ λ°λ μν©μ μλ―ΈνκΈ° λλ¬Έμ n >= 5
μΈ μ‘°κ±΄μ λΆμ ν©ν λͺ¨λ κ²½μ°μ μλ€μ΄ μ΄μ ν΄λΉνλ κ²μ΄λ€.
μ¬κΈ°μ μμμΌ ν μ μ n >= 5
μ λ°λκ° n < 5
λ§μ μλ―Ένλ κ²μ΄ μλμ μμμΌ νλ€.
λ°λμ κ²½μ°μλ μ«μκ° μλ κ²½μ°(NaN
), κ°μ΄ μ μλμ§ μμ κ²½μ°(undefined
), κ°μ΄ μλμ μΌλ‘ λΉμ΄μλ κ²½μ°(null
) λ±μ ν¬ν¨νκΈ° λλ¬Έμ, 쑰건μ μλκ° n < 5
μ΄μλ€λ©΄ μΆκ°μ μΌλ‘ 쑰건μ μ μν΄μΌ ν κ²μ΄λ€.
λ§μ½ ν΄λΉ κ²½μ° μ½λλ₯Ό μ΄λ° μμΌλ‘ μμ ν μ μλ€.
let n = NaN // nμ΄ μ«μ λ²μκ° μλ μν©λ€μ elseλ‘ μ μ
if (n >= 5) {
console.log(true)
} else if (n < 5) {
console.log(false)
} else {
console.log('is Not a Number')
}
ν΄λΉ μ½λλ μμμ μΈκΈνλ λλ¨Έμ§ κ²½μ°λ€μ λν΄ else
λ₯Ό ν΅ν΄ μΌκ΄μ μΌλ‘ μ μνκ³ , μμ else if
λ₯Ό μΆκ°νμ¬ n < 5
μ λν 쑰건μ μ μνμλ€.
μκ³ λ¦¬μ¦μ μμ±νλ€ λ³΄λ©΄ 쑰건μ λν λͺ
νν μ μκ° λμ§ μμ, λ μ ννκ² μ
λ ₯ν κ² κ°μλ° μμΈμ κ²½μ°μ κ±Έλ € λ΅μκ³Ό μΌμΉνμ§ μλ μν©μ΄ λ°μνκΈ°λ νλ€. κ·Έλ κΈ° λλ¬Έμ, μ‘°κ±΄μ΄ λͺ
ννκ² μ΄λ€ λ°λ₯Ό μλ―Ένλ μ§μ λν μ΄ν΄λ₯Ό λͺ
νν νκ³ μ μ νκ² κ΅¬λ¬Έμ μ¬μ©νμ¬μΌ νλ€.
if
μ else if
λ§μ μ¬μ©νλ κ²ν΄λΉ κ²½μ°μλ μμ λ§μ°¬κ°μ§λΌκ³ μκ°νλ€.
let n = NaN if (n >= 5) { console.log(true) } else if (n < 5) { console.log(false) } console.log('else') // output : 'else'
μ μ½λλ₯Ό 보면 λ³μn
μ΄NaN
μ΄κΈ°μ κ²°κ³Όμ μΌλ‘'else'
λΌλ κ²°κ³Ό κ°μ λ°ννλ€.
μ΄λ κ² μ½λ μ§νμ΄ μ΄μ΄μ§κ² νλ κ²μ΄ μλ λ κ²½μ°λΌλ©΄ μκ΄μ΄ μμ§λ§, λ§μ½ μ«μκ° μλ κ²°κ³Όλ₯Ό μ€λ₯λ‘ κ°μ£Όνκ³ μ§νμ μ μ΄ν΄μΌ νλ μν©μ΄λΌλ©΄ μ΄λ λ¬Έμ κ° λ μ μλ€.
쑰건문μμ μμ μ΄ μκ°ν μλμ μ½λμ μμ±λ μλκ° λͺ νν μΌμΉν΄μΌ λ°μν μ μλ μ€λ₯λ₯Ό μ΅μνμΌλ‘ ν μ μλ€κ³ μκ°νλ€.
κ·Έλ κΈ°μ μ μ½λμ κ²½μ°μλ κ·Έ μλλ₯Ό λͺ νν ν¨μ΄ μ€μνλ€κ³ μκ°νλ€.
μ΄λ κ² if...else
μ λ¬Έλ²μ λν΄ μμ보μκ³ , κ·Έλ λ€λ©΄ μ€μ λ‘ μ΄ κ΅¬λ¬Έμ΄ μ΄λ»κ² μλνλ μ§μ λν΄ μμ보μ.
if...else
λ¬Έμ νλ¦if...else
μ νλ¦μ λν΄μ μμ보기 μ μ, μμμ μ μν μμ μ½λλ₯Ό μΌλΆ λ³νν κ²μ μ΄ν΄ 보면μ μμ보μ.
let n = 3
if (n >= 5) {
console.log('n >= 5')
} else if (n < 5) {
console.log('n < 5')
} else if (n === 3) {
console.log(n)
} else {
console.log('is Not a Number')
} // output : 'n < 5'
쑰건문μ νλ¦μ 쑰건 μΌμΉ μ¬λΆμ λ°λΌ κ·Έ νλ¦μ΄ κ²°μ λλ κ²μ μ΄λ―Έ λ€ μκ³ μμ κ²μ΄λ€.
μ κ²½μ° λ³μ n
μ 3
μ΄λΌλ κ°μ΄ ν λΉλμκ³ , κ²°κ³Όλ 3
μ μΆλ ₯ν κ² κ°μ§λ§ 'n < 5'
λ₯Ό μΆλ ₯νλ κ²°κ³Όλ₯Ό μ μ μλ€.
λ§μ½ μλν μΆλ ₯ κ°μ΄ 3
μ΄λΌλ©΄ μ΄λ μ€λ₯λ₯Ό μΆλ ₯νμ§ μμ§λ§ λ¬Έμ κ° μλ ꡬ문μ΄λ€.
μ΄λ μμ else if
쑰건μμ μ μλ n > 5
λΌλ μ‘°κ±΄μ΄ λ€μμ n === 3
μ΄λΌλ 쑰건μ ν¬ν¨νλ 쑰건μ΄μκΈ°μ, 3
μ΄λΌλ κ°μ μ μ₯ν λ³μ n
μ μμ 쑰건μ λν΄ true
λ₯Ό λ°ννμκ³ κ·Έ μμ μμ κ²°κ³Ό κ°μ μΆλ ₯ν κ²μ΄λ€.
μ΄λ₯Ό μλν λ°κ° μ°μ μ μΌλ‘ 3
μΌ κ²½μ°λ₯Ό μ°ΎκΈ° μν¨μ΄λΌλ©΄ λ€μκ³Ό κ°μ΄ μμ ν μ μλ€.
let n = 3
if (n === 3) {
console.log(n)
} else if (n < 5) {
console.log('n < 5')
} else if (n >= 5) {
console.log('n >= 5')
} else {
console.log('is Not a Number')
} // output : 3
μ΄λ κ² μμ ν κ²°κ³Όλ μ¬λ°λ₯΄κ² 3
μ΄λΌλ κ°μ λ°ννλ κ²μ μ μ μλ€.
μ΄λ κ² μ‘°κ±΄λ¬Έμ νλ¦μ μ°μ μ μΌλ‘ μμ±λ 쑰건μμ λ©μΆλ©΄ λ€ μ‘°κ±΄λ€μ κ²μ¦ν κΈ°νκ° μ£Όμ΄μ§μ§ μκΈ° λλ¬Έμ 쑰건μ μμλ₯Ό μ ννκ² νμ¬ μ¬λ°λ₯Έ κ²°κ³Όλ₯Ό λμΆνλλ‘ ν΄μΌ νλ€.
μ΄μ΄μ switch
λ¬Έμ λν λ΄μ©μ κ°λ¨νκ² μμλ³΄κ³ if
μ μ΄λ€ μ°¨μ΄μ μ΄ μλμ§μ λν λ΄μ©μ μμ보μ.
switch
λ¬Έμ 무μμΈκ°μ°μ switch
λ¬Έλ μ μ΄λ¬Έμ μΌλΆμ΄λ©° 쑰건문μ ν¬ν¨λλ€.
switch
λ¬Έμ κ°λ¨νκ² νννμλ©΄ λ¨μν 볡μμ if
λ¬Έμ νννλ ꡬ문μ΄λΌκ³ λ ννλλ€. μ΄ λ§μ΄ μ΄λ€ μλ―Έλ₯Ό κ°λ μ§ switch
λ¬Έμ λ¬Έλ²μ μ€λͺ
νλ©΄μ ν¨κ» μμ보μ.
switch
λ¬Έμ λ¬Έλ²κ³Ό κΈ°λ₯switch
λ¬Έμ λ€μκ³Ό κ°μ λ¬Έλ²μ κ°λλ€.
switch (x) {
case 'value1': // if (x === 'value1')
...
statement1
case 'value2': // if (x === 'value2')
...
statement2
default: // else
...
statement3
}
μΈλ» 보면 if
λ¬Έκ³Ό λΉμ·νμ§λ§, 쑰건μμ μκ΄νΈ(()
)κ° μλ€λ μ κ³Ό μ€ν ꡬ문μμ μ€κ΄νΈ({}
)λ₯Ό μ¬μ©νμ§ μκ³ μ½λ‘ (:
)μ μ¬μ©νλ€λ μ μμ λ¬Έλ²μ μΈ μμμ μ°¨μ΄λ₯Ό 보μ¬μ€λ€.
κ·Έλ¦¬κ³ switch
λ¬Έμ κ²½μ°μλ if
κ° μλ case
λ¬Έμ ν΅ν΄ μΌμΉ μ¬λΆλ₯Ό ꡬλΆνκ³ , else
λμ default
λ¬Έμ ν΅ν΄ λ°λμ κ²½μ°λ₯Ό μΆλ ₯νκ±°λ λ°ννλ€.
λν κΈ°λ₯μ μΈ λΆλΆμμλ μ°¨μ΄κ° μ‘΄μ¬νλλ°, if
μ κ²½μ°μλ 쑰건 μ§μ μ μμ λκ° λμ§λ§, switch
λ¬Έμ κ²½μ°μλ μΌμΉ μ¬λΆλ§ νλ³ν μ μκΈ° λλ¬Έμ λ¨μν μ‘°κ±΄λ§ μ μν μ μμμ μ μ μλ€.
μ΄λ¬ν switch
λ¬Έμ λ²μλ 볡μ‘ν 쑰건μ μ μν κ²½μ°μλ μ¬μ©ν μ μμ§λ§, λ¨μν μΌμΉ μ¬λΆλ§ νλ¨ν΄μΌ νλ if
λ¬Έμ΄ λ°λ³΅λλ κ²½μ°λ₯Ό λ체ν μ μλ€.
switch
λ¬Έ, μΈμ μμ±ν΄μΌ ν κΉ?
switch
λ¬Έκ³Όif...else
λ¬Έμ μ°¨μ΄μ μ νμνκ³ μ νλ λ°μ΄ν°μ μ κ·Όνλ λ°©μμμ μ°¨μ΄λ₯Ό 보μ΄λ κ²μΌλ‘ μ΄ν΄νλ€.
μ νν λ΄μ©μ CSμ λν λ΄μ©μ΄κ³ , μμ§ CSκ° λΆμ‘±ν λ³ΈμΈμκ² μλ²½ν μ΄ν΄κ° λμ§ μκΈ°μ μ΅λν κ°λ¨νκ² ν΄μνμ¬ μμ±νλ€.
κ°λ¨νκ² λ§νμλ©΄,if...else
λ¬Έμ κ²½μ° μ‘°κ±΄μ λ§μ‘±νλ μ§λ₯Ό ꡬλΆνμ¬ μμ°¨μ μΌλ‘ νλ¨νλ λ°λ©΄μ,switch
λ¬Έμ κ²½μ° μ λ ₯ κ°μ ν΄λΉνλ μ ν ν μ΄λΈμ μμΉλ‘jump
νλ λ°©μμ μ±ννλ€.
κ·Έλ κΈ°μ, μ ν ν μ΄λΈμ λ³λλ‘ λ§λ€μ§ μμ§λ§ νΉμ λ°μ΄ν°λ₯Ό μ°ΎκΈ° μν΄ κ΅¬λΆνλ κ³Όμ (쑰건 ꡬλΆ)μ΄ μ§μμ μΌλ‘ μ‘΄μ¬νλif...else
λ¬Έμ κ²½μ° μ‘°κ±΄μ μκ° μ μ μλ‘ μ 리νλ€.
λ°λλ‘ κ΅¬λΆνλ κ³Όμ μ΄ λμ κ°μ΄ 무μμΈμ§λ§ νμΈνμ§λ§, μ ν ν μ΄λΈμ λ§λλ κ³Όμ μ΄ νμνswitch
λ¬Έμ κ²½μ° μ‘°κ±΄μ μκ° λ§μμλ‘ μ 리νλ€.
λΉμ°νλ ν΄λΉ λ΄μ©μif...else
μswitch
λ λ€ μ¬μ©ν μ μλ κ²½μ°μ ν΄λΉνλ€! ππ μΆμ²
if...else
vsswitch
: THINK-PRO BLOG : switchλ¬Έκ³Ό ifλ¬Έμ μ±λ₯ λΉκ΅ (ISA κ΄μ μμ)