[Elixir] ๋ถ„๊ธฐ

[์›๋ณธ ๋งํฌ]

if-else๋ฌธ
๊ฐ€์žฅ ์‹ฌํ”Œํ•œ ๋ถ„๊ธฐ๋ฌธ์ด๋‹ค.
if** ์กฐ๊ฑด์‹ do
**ย ย ย  ํ‘œํ˜„์‹

else** **
**ย ย ย  ํ‘œํ˜„์‹**
end

๋‹ค๋ฅธ ์–ธ์–ด๋“ค์ฒ˜๋Ÿผ else if๊ฐ™์€ ์ง์ ‘์  ์ค‘์ฒฉ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹จ๊ฒƒ๋งŒ ์•Œ์•„๋‘๋ฉด ๋œ๋‹ค. image

image

image


if-else ๋‹จ์ผ ํ‘œํ˜„์‹ ๊ตฌ๋ฌธ
์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
if** ์กฐ๊ฑด์‹, do: ํ‘œํ˜„์‹1, else: ํ‘œํ˜„์‹2** image

image


unless๋ฌธ
if์™€ ๋ฐ˜๋Œ€๋กœ, ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ๋•Œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๋ถ„๊ธฐ๋‹ค.

unless ์กฐ๊ฑด์‹ do
**ย ย ย  **ํ‘œํ˜„์‹
end


image

image


cond๋ฌธ
if-else๋ฅผ ์ค‘์ฒฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด, ๋Œ€์‹  ์ด๊ฑธ์“ฐ๋ฉด ๋œ๋‹ค.

cond** do
**ย ย ย  ์กฐ๊ฑด์‹1 -> ํ‘œํ˜„์‹1

**ย ย ย  ์กฐ๊ฑด์‹2 -> ํ‘œํ˜„์‹2**
**ย ย ย  ...**
end


image

image


case๋ฌธ
ํŒจํ„ด๋งค์นญ ๊ตฌ๋ฌธ์ด๋‹ค.

case** ์ „๋‹ฌ๊ฐ’ do
**ย ย ย  ํŒจํ„ด1 -> ํ‘œํ˜„์‹1

**ย ย ย  ํŒจํ„ด2 -> ํ‘œํ˜„์‹2**
**ย ย ย  ...**
end


image

image _๋Š” ์™€์ผ๋“œ์นด๋“œ ํŒจํ„ด์œผ๋กœ, ๋ญ๋“  ๋“ค์–ด๊ฐˆ์ˆ˜์žˆ๋‹จ๊ฑฐ๋‹ค.

ํŒจํ„ด ํŠน์ •์œ„์น˜์— ์‹๋ณ„์ž๋ฅผ ๋„ฃ์œผ๋ฉด, ๊ทธ ์‹๋ณ„์ž๋กœ ํ•ด๋‹น ๊ฐ’์˜ ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋˜๊ธฐ๋„ ํ•œ๋‹ค. image

image


๊ฐ€๋“œ when
ํŒจํ„ด ๋’ค์— when๊ณผ ์กฐ๊ฑด์‹์„ ๋ถ™์ด๋ฉด, ํŒจํ„ด์— ๋”ํ•ด ์ถ”๊ฐ€์กฐ๊ฑด์ด ์ƒ์„ฑ๋œ๋‹ค. image

image


ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ๋ถ„๊ธฐ
์ธ์ž์— ์ด๋ฆ„ ๋Œ€์‹  ๊ฐ’์„ ๋„ฃ์œผ๋ฉด, ํ•ด๋‹น ๊ฐ’์œผ๋กœ ๋ถ„๊ธฐ๊ฐ€ ์„ค์ •๋œ๋‹ค. image

image

๋””ํดํŠธ ๊ตฌ๋ฌธ์„ ์„ค์ •ํ•˜๊ณ ์‹ถ๋‹ค๋ฉด, ํ•˜๋˜๋Œ€๋กœ ๋ณ€์ˆ˜๋ช…์„ ์จ์ฃผ๋ฉด ๋œ๋‹ค. image

image

๊ทธ๋ ‡๋‹ค.


์ฐธ์กฐ
https://elixirschool.com/ko/lessons/basics/control-structures/