티스토리 뷰

얼마 전 계산기 앱을 만들면서 우선 순위가 있는 계산을 해주기 위해

열거형을 사용하여 더하기, 뺄셈, 곱셈, 나누기를 지정해줬다.

enum CalculationOperator: String {
    case plus = "+"
    case minus = "-"
    case multiply = "x"
    case divide = "÷"
}

 

그러고 사용자가 입력한 연산자를 enum을 사용해서 저장하려고 

switch .. case 문에서 해당 operator을 쓰는데 에러가 났다..ㅎㅎ

 

switch self { } 이런 식으로 사용했는데

맨 처음에는 enum 구문안에 없어서 self를 못 찾나보다 -> enum 안에 넣어봐야지 하면서

끼워맞추기식 에러 해결을 시도했는데... 계속 찾을 수 없다는 내용의 에러가 났다.

 

switch를 잘 알고 있다고 생각했는데.. 당황스러웠다.

그래서 다시 switch에 대한 개념을 정리해보고자 한다.

switch 표현식 {
	case 일치하는 값1:
    	코드문
	case 일치하는 값2:
    	코드문
	case 일치하는 값3
    	코드문
	default:
}

1. switch 옆에는 값을 나타내거나 값을 반환하는 표현식이다.

2. 이 값은 switch 구문이 동작하게 하는 값이다.

3. 그 값과 일치할 수 있는 값을 case 구문으로 제공된다.

4. 표현식과 일치하는 case 구문이 없을 경우에 어떻게 해야하는 지 정의하는 부분이다.

 

이걸 확인하니 문제가 바로 해결되었다.

값을 나타내거나 반환하는 표현식을 써야하는데

내가 그냥 self로 하니 일치하는 값을 찾을 수가 없었던 건 당연한 것이다.

 

그래서 버튼으로 입력받은 사용자의 숫자를

sender.currentTitle을 oper라는 상수에 저장해주었고,

 

switch oper {}

위 처럼 oper를 표현식에 넣어줬다.

 

다음에는 당연하다고 생각하는 것도 오류가 생기면

다시 개념을 확실히 하고 사용해야겠다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함