코딩일기/자격증

[정보처리기사] [ Java ] switch 문에서 break가 없을 때 | 2020년 정보처리기사 기출문제

jhy_2023 2024. 9. 23. 12:56
728x90
반응형

2020년 1회 정보처리기사 기출문제

1. 다음은 자바 소스코드이다. 출력 결과를 쓰시오.

public class good {
    public static void main(String[] args) {
        int i = 3;
        int k = 1;
        switch (i) {
            case 0:
            case 1:
            case 2:
                break;
            case 3:
                k = 0;
            case 4:
                k += 3;
            case 5:
                k -= 10;
            default:
                k--;
        }
        System.out.print(k);
    }
}

정답

-8


전체 코드 해설

public class good {
    public static void main(String[] args){
        int i = 3;
        int k = 1;

        // switch 문에서 i의 값에 따라 실행 흐름이 결정됩니다.
        switch (i) {
            case 0:
            case 1:
            case 2:
                // case 0, 1, 2에서는 아무런 코드도 실행되지 않습니다.
                break;

            case 3: 
                k = 0; // i가 3일 때 k는 0으로 설정됩니다.
                // break가 없기 때문에 이후 case 4로 실행이 계속됩니다.

            case 4: 
                k += 3; // k는 0 + 3이 되어 3이 됩니다.
                // break가 없기 때문에 이후 case 5로 실행이 계속됩니다.

            case 5: 
                k -= 10; // k는 3 - 10이 되어 -7이 됩니다.
                // break가 없기 때문에 default로 실행이 계속됩니다.

            default: 
                k--; // k는 -7 - 1이 되어 최종적으로 -8이 됩니다.
        }

        // k의 최종 값을 출력합니다.
        System.out.print(k);
    }
}
반응형

1. 변수 초기화

i = 3, k = 1로 시작합니다.

2. switch문 흐름:

  • break가 없는 경우: 각 case 문 뒤에 break가 없으면, 해당 케이스를 만나면 이후의 모든 구문이 연속적으로 실행됩니다.
  • i = 3이므로 case 3부터 실행됩니다.
  • case 3: k = 0으로 설정됩니다.
  • case 4: k += 3이 실행되어 k = 3이 됩니다.
  • case 5: k -= 10이 실행되어 k = -7이 됩니다.
  • default: k--이 실행되어 k = -8이 됩니다.
728x90

3. 결과:

최종적으로 System.out.print(k)에서 -8이 출력됩니다.

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형