switch-case문은 case 뒤의 값과 일치하는 경우 분기하는 조건 분기문이다. break를 통해 switch-case문을 빠져나갈 수 있고, default를 통해 if-else if-else문의 else처럼 case 이외의 조건을 처리할 수도 있다. case 뒤에는 정수나 문자만 사용할 수 있었지만, JAVA 7 버전부터 문자열도 사용할 수 있게 되었다.
Line 10 : num의 값이 0보다 큰 경우, Line 11 실행 후 Line 18로 이동
Line 12 : num의 값이 0인 경우, Line 13 실행 후 Line 18로 이동
Line 14 : num의 값이 0보다 작은 경우, Line 15 실행 후 Line 18로 이동
※ "if-if-if" vs "if-else if-else"
- 아래의 [코드 1]처럼 if문 3개를 사용하는 경우, 첫 번째 if문을 만족하더라도 아래의 if문을 계속해서 비교한다. 하지만, [코드 2]처럼 if-else if-else문을 사용하는 경우 하나의 조건문을 만족하면 다음의 조건문을 비교하지 않고 건너뛰기 때문에, 속도면에서 조금 더 유리하다.
값을 변경하지 못하는 데이터를 상수라고 한다. 상수는 이름을 가지지 않는 리터럴(Literal) 상수와 이름을 가지는 심볼릭(Symbolic) 상수로 나누어 진다.
■ 리터럴(Literal) 상수
- 10이나 20과 같이 이름이 붙지 않은 고유의 값을 리터럴(Literal) 상수라고 한다. 이름이 없기 때문에 메모리 공간의 접근 자체가 불가능하며, 존재 의미가 없어지면 메모리에서 바로 소멸된다. 기본적으로 모든 정수형 상수는 int형, 실수형 상수는 double형으로 표현 및 저장된다.
- 변수와 같이 이름이 부여된 변하지 않는 값을 심볼릭(Symbolic) 상수라고 한다. 심볼릭(Symbolic) 상수를 사용하는 가장 큰 이유는, 사용자가 임의로 값을 변경할 수 없도록 하기 위해서이다. final 키워드를 통해 심볼릭(Symbolic) 상수를 정의할 수 있다.