Elixir에서 조건문은 어떻게 사용하나요?
_____A1: Elixir에서는 `if`와 `unless` 키워드를 사용하여 기본적인 조건문을 작성할 수 있습니다. 예를 들어:
```elixir
if 조건 do
조건이 참일 때 실행할 코드
else
조건이 거짓일 때 실행할 코드
end
```
Q2: Elixir의 `unless`는 무엇이고 어떻게 사용하나요?
A2: `unless`는 조건이 거짓일 때 코드를 실행하는 조건문입니다. `if`의 반대 의미로 생각하면 됩니다. 예:
```elixir
unless 조건 do
조건이 거짓일 때 실행할 코드
end
```
Q3: `if`와 `unless`에 `else`는 어떻게 사용할 수 있나요?
A3: `if`와 `unless` 모두 `do ... else ... end` 블록 내에서 사용할 수 있습니다. 예:
```elixir
if 조건 do
IO.puts("참입니다")
else
IO.puts("거짓입니다")
end
```
Q4: 복수의 조건 분기는 어떻게 처리하나요?
A4: Elixir는 전통적인 `elseif`문을 지원하지 않고 대신 `cond` 키워드를 사용합니다. `cond`는 여러 조건을 순차적으로 검사하고, 첫 번째 참인 조건에 대응하는 코드를 실행합니다.
```elixir
cond do
조건1 -> 결과1
조건2 -> 결과2
end
```
Q5: `case`문은 무엇이고 언제 사용하나요?
A5: `case`문은 주어진 값과 패턴을 비교하여 매칭되는 패턴에 따라 분기하는 문장입니다. 조건이 아닌 값 패턴 매칭으로 분기할 때 사용합니다.
```elixir
case 값 do
패턴1 -> 처리1
패턴2 -> 처리2
_ -> 기본처리
end
```
Q6: 조건문 내부에서 여러 문장을 실행하고 싶으면?
A6: `do` 블록 안에 여러 문장을 작성할 때는 `do` 블록 내에 여러 줄을 쓰거나, 여러 표현식을 `;`로 구분하거나, 코드 블록을 중첩할 수 있습니다.
```elixir
if 조건 do
IO.puts("첫 번째 문장")
IO.puts("두 번째 문장")
end
```
Q7: 조건문은 값으로 평가되나요?
A7: 네, Elixir의 조건문은 표현식이며 항상 값을 반환합니다. 예를 들어 `if`문의 결과를 변수에 할당할 수 있습니다.
```elixir
result = if x > 0, do: "양수", else: "음수 또는 0"
```
Q8: `if`와 `unless`는 언제 사용하는 게 좋은가요?
A8: 간단한 한 가지 조건만 검사할 때 사용하며, 복잡한 분기는 `cond`나 `case`로 처리하는 것이 가독성이 좋습니다.
---
요약하자면, Elixir에서 조건문은 주로 `if`, `unless`를 단일 조건에 사용하며, 여러 조건 분기에는 `cond`, 값 패턴 매칭 분기에는 `case`를 사용합니다. 모든 조건문은 값으로 평가되며, `do...else...end` 구조를 따릅니다.
각 조건문은 특정한 상황에 맞게 사용되며, 코드의 가독성을 높이고 로직을 명확하게 표현하는 데 도움을 줍니다.
아래에서 각 조건문의 사용법에 대해 자세히 설명하겠습니다.
1. `if` 문 `if` 문은 주어진 조건이 참일 때 특정 코드를 실행합니다.
기본적인 구조는 다음과 같습니다: ```elixir if condition do condition이 true일 때 실행할 코드 else condition이 false일 때 실행할 코드 (선택적) end ``` 예시: ```elixir x = 10 if x > 5 do IO.puts("x는 5보다 큽니다.
") else IO.puts("x는 5보다 작거나 같습니다.
") end ```
2. `unless` 문 `unless` 문은 `if`의 반대 개념으로, 주어진 조건이 거짓일 때 특정 코드를 실행합니다.
기본적인 구조는 다음과 같습니다: ```elixir unless condition do condition이 false일 때 실행할 코드 else condition이 true일 때 실행할 코드 (선택적) end ``` 예시: ```elixir x = 3 unless x > 5 do IO.puts("x는 5보다 크지 않습니다.
") else IO.puts("x는 5보다 큽니다.
") end ```
3. `case` 문 `case` 문은 주어진 값에 따라 여러 가지 패턴을 매칭하여 실행할 코드를 결정합니다.
기본적인 구조는 다음과 같습니다: ```elixir case value do pattern1 -> pattern1에 매칭될 때 실행할 코드 pattern2 -> pattern2에 매칭될 때 실행할 코드 _ -> 어떤 패턴에도 매칭되지 않을 때 실행할 코드 (선택적) end ``` 예시: ```elixir color = :red case color do :red -> IO.puts("색상은 빨간색입니다.
") :blue -> IO.puts("색상은 파란색입니다.
") _ -> IO.puts("알 수 없는 색상입니다.
") end ```
4. `cond` 문 `cond` 문은 여러 조건을 검사할 때 유용합니다.
각 조건은 `true`일 때 실행할 코드를 정의합니다.
기본적인 구조는 다음과 같습니다: ```elixir cond do condition1 -> condition1이 true일 때 실행할 코드 condition2 -> condition2가 true일 때 실행할 코드 true -> 모든 조건이 false일 때 실행할 코드 (선택적) end ``` 예시: ```elixir x = 10 cond do x < 5 -> IO.puts("x는 5보다 작습니다.
") x < 15 -> IO.puts("x는 5 이상 15 미만입니다.
") true -> IO.puts("x는 15 이상입니다.
") end ``` 결론 Elixir에서 조건문은 다양한 상황에 맞게 사용할 수 있는 유용한 도구입니다.
`if`와 `unless`는 단순한 조건을 검사할 때, `case`는 패턴 매칭을 통해 다양한 경우를 처리할 때, `cond`는 여러 조건을 순차적으로 검사할 때 유용합니다.
이러한 조건문을 적절히 활용하면 코드의 가독성과 유지보수성을 높일 수 있습니다.
작성자:
김다은 [비회원]
| 작성일자: 1년 전
2025-01-02 06:21:27
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 137 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.