[TIL] 7일차 java switch문, 최대 공약수

김지수·2024년 4월 29일

TIL

목록 보기
7/53

Switch/case 문

switch/case 문은 if문과 비슷하지만 좀 더 일정한 형식이 있는 조건·판단문이다.

switch/case 문 구조

switch(입력변수) {
    case 입력값1: ...
         break;
    case 입력값2: ...
         break;
    ...
    default: ...
         break;
}

여기서 case 값 안에 break를 하지 않으면 빠져 나오지 않고 다음 case 문을 실행한다.

개선된 switch/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문이 코드가 더 가독성이 좋고 유지보수하기 편하다고 느꼈다. 최대 공약수 문제를 해결하면서 기존에 알고 있던 방법 외에도 새로운 접근 방법을 배웠다는 점이 좋았다.

profile
서툴고 부족한 점이 많지만, 배우고 발전하며 성장하기 위해 노력하겠습니다.

0개의 댓글