🎨 μ½”λ“œκ°œμ„  : μ€‘μ²©λœ 쑰건문을 κ°œμ„ ν•˜λŠ” 방법

2023-10-24

Nested If Statements Meme


🚩 κ°œμš”

κ°œλ°œμ„ ν•˜λ‹€λ³΄λ©΄ μ½”λ“œκ°€ λ­”κ°€ λ³΅μž‘ν•˜κ³  읽고 μ΄ν•΄ν•˜κΈ° νž˜λ“€λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. μ½”λ“œμ˜ 가독성이 λ–¨μ–΄μ§€λŠ” 이유 쀑 κ°€μž₯ ν”ν•œ μ€‘μ²©λœ 쑰건문을 κ°œμ„ ν•˜λŠ” 방법에 λŒ€ν•΄ μƒκ°ν•΄λ΄…μ‹œλ‹€.


❕쑰건문을 μž‘μ„±ν•˜λŠ” 방식 두가지

μ€‘μ²©λœ λΆ„κΈ°μ˜ 쑰건문을 μž‘μ„±ν•˜λŠ” 방식은 μ•„λž˜μ˜ λ‘κ°€μ§€λ‘œ 크게 λ‚˜λ‰©λ‹ˆλ‹€.

sample-01

sample-01

1번의 Bubble Style의 경우 이 포슀트의 주제인 쀑첩 쑰건문(nested if statement) λ°©μ‹μž…λ‹ˆλ‹€. 쑰건식이 μœ„μͺ½μ— λͺ¨μ—¬μžˆμ–΄ μƒλ‹¨μ˜ λΆ„κΈ°λ‘œ κ°€λŠ” 첫번째 흐름은 보기 μ‰½μ§€λ§Œ, μ•„λž˜μͺ½ 라인처럼 elseκ°€ λͺ¨μ—¬μžˆλŠ” 곳의 μ½”λ“œλ₯Ό νŒŒμ•…ν•˜κΈ°κ°€ ꡉμž₯히 μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

2번의 Gateway Style의 경우 λΉ λ₯Έ λ°˜ν™˜(early return)이라고도 λΆˆλ¦¬λŠ” λ°©μ‹μž…λ‹ˆλ‹€. 기쑴의 μ½”λ“œμ˜ 쑰건식을 λ°˜λŒ€λ‘œ 뒀집어 μŠ€μ½”ν”„λ₯Ό λ²—μ–΄λ‚˜λŠ” λ˜λŠ” 뢀뢄을 λ¨Όμ € μ²˜λ¦¬ν•˜λŠ” ꡬ쑰이기 λ•Œλ¬Έμ—, 1λ²ˆμ— λΉ„ν•΄ 훨씬 읽기가 νŽΈν•˜κ³  μ½”λ“œμ˜ 흐름이 μ–΄λ””μ„œ μ€‘λ‹¨λ˜λŠ”μ§€ νŒŒμ•…ν•˜κΈ° μ‰¬μš΄ ꡬ쑰λ₯Ό κ°–κ³  μžˆμŠ΅λ‹ˆλ‹€.

μœ„ μ˜ˆμ œμ—μ„  λ‹¨μˆœν•˜κ²Œ condition1같은 ν˜•μ‹μœΌλ‘œ μ μ–΄μ„œ 읽기가 νŽΈν•˜μ§€λ§Œ, λ§Œμ•½ 쑰건문이 μ•„λž˜μ™€ κ°™λ‹€λ©΄ ꡉμž₯히 λ‚œν•΄ν•œ μ½”λ“œκ°€ λ©λ‹ˆλ‹€.

sample-01

sample-01

μ‚¬μ†Œν•˜μ§€λ§Œ 2번 λ°©μ‹μ˜ λ˜ν•˜λ‚˜μ˜ μž₯점인 λ“€μ—¬μ“°κΈ°κ°€ μ€„μ–΄λ“ λ‹€λŠ” 점 덕뢄에, 쀄 길이의 λΆ€μ‘±μœΌλ‘œ 두쀄이 λ˜λŠ” μ½”λ“œλ„ ν•œμ€„μ— λ“€μ–΄κ°€κ²Œ 되죠.


πŸ–οΈλ§ˆμΉ¨

μ½”λ“œλ₯Ό λ¨Όμ € λͺ©μ μ— 따라 μž‘μ„±ν•œ λ’€ μœ„μ²˜λŸΌ κ°œμ„ ν•˜λŠ” 과정이 μžˆλ‹€λ©΄, μΆ”ν›„ λ‹€μ‹œ μ½”λ“œλ₯Ό 읽고 νŒŒμ•…ν•  λ•Œ 큰 도움이 될 것 κ°™μŠ΅λ‹ˆλ‹€. 가독성이 쒋은 μ½”λ“œλ₯Ό μ“°λŠ” μŠ΅κ΄€μ„ 듀이기 μœ„ν•΄ κ°€μž₯ 기초적인 λ”λŸ¬μš΄ μ½”λ“œ(code smells) 사둀λ₯Ό 포슀트둜 μž‘μ„±ν•΄λ΄€λŠ”λ°, 생각보닀도 λΆ„λŸ‰μ΄ 더 짧은 λŠλ‚Œμ΄λ„€μš”β€¦ 가독성을 μœ„ν•œ 포슀트λ₯Ό 더 μž‘μ„±ν•˜λ‹€κ°€ μœ μ‚¬ν•œ λ‚΄μš©μ΄ λ‚˜μ˜€λ©΄ ν•©μ³μ•Όκ² μŠ΅λ‹ˆλ‹€β€¦γ…Žγ…Ž