switch/case 문은 if문과 비슷하지만 좀 더 일정한 형식이 있는 조건·판단문이다.
switch(입력변수) {
case 입력값1: ...
break;
case 입력값2: ...
break;
...
default: ...
break;
}
여기서 case 값 안에 break를 하지 않으면 빠져 나오지 않고 다음 case 문을 실행한다.
result = switch (operator) {
case "+" -> result + secondNumber;
case "-" -> result - secondNumber;
case "*" -> result * secondNumber;
case "/" -> result / secondNumber;
case "%" -> result % secondNumber;
default -> throw new IllegalStateException("사칙 연산 기호가 '" + operator + "' 아닙니다. ");
};
자바 14부터 개선된 switch 문을 지원하는데 간결하고 가독성이 좋아 보인다.
두 수의 공통된 '약수 중에서 가장 큰 수'를 의미합니다.
최대 공약수 구하는 방법이 두가지가 있다
1.첫번째 방법
int x = 60;
int y = 80;
BigInteger first = new BigInteger(String.valueOf(x));
BigInteger second = new BigInteger(String.valueOf(y));
BigInteger gcd = first.gcd(second);
2번째 방법
// 재귀를 통한 방법!
public static int gcd(int a, int b) {
if(b == 0) return a;
return gcd(b, a % b);
}
오늘은 switch 문을 활용하여 코드를 개선하고 알고리즘 문제를 풀며 최대 공약수를 구하는 두가지 방법에 대해 공부했다. 이전에는 if 문만 사용을 했는데 간결한 switch문이 코드가 더 가독성이 좋고 유지보수하기 편하다고 느꼈다. 최대 공약수 문제를 해결하면서 기존에 알고 있던 방법 외에도 새로운 접근 방법을 배웠다는 점이 좋았다.