모두CBT

다음 Java 프로그램의 출력 결과는?public class Foo {… | [9급 지방직 컴퓨터일반] 18년 1회차 기출문제 상세 페이지

1[9급 지방직 컴퓨터일반] 18년 1회차
다음 Java 프로그램의 출력 결과는?
public class Foo {
public static void main(String[] args) {
int i, j, k;
for (i = 1, j = 1, k = 0; i < 5; i++ ) {
if ((i % 2) == 0)
continue;
k += i * j++;
}
System.out.println(k);
}
}
1
5
2
7
3
11
4
15
해설

출력은 7이다.

i가 짝수이면 continue로 누적을 건너뛰므로 i = 1, 3일 때만 k가 바뀐다. j++는 후위 증가라 현재 j 값으로 곱한 뒤 j를 1 늘린다.

i = 1: k = 0 + 1 × 1 = 1, j는 2가 된다.
i = 3: k = 1 + 3 × 2 = 7, j는 3이 된다.

  • 5는 위 추적에서 어느 단계의 k 값으로도 나오지 않는다.
  • 11은 j++를 전위 증가처럼 보아 1 × 2 + 3 × 3으로 계산한 결과이다.
  • 15는 continue로 짝수 i를 건너뛰는 위 추적에서 k가 가질 수 없는 값이다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.