안녕하세요 길벗 수험서 운영팀입니다.
printf문의 서식을 살펴보시면 알 수 있습니다.
"합은%d %4d입니다.\n"에서 1과 0을 출력한다고 할 때,
1을 출력하면 "합은1 %4d입니다."입니다.
%4d는 4자리를 확보하여 우측부터 출력하라는 의미입니다.
여기서 1자리 숫자인 0을 출력하게 되면 앞에 공백 3개를 띄우게 됩니다.
즉, "합은1( )( )( )( )0입니다."가 출력되게 됩니다.
본래 있던 공백 1개에 %4d의 4자리 확보 중 1자리를 출력으로 쓰게 되고, 3자리가 공백에 추가되서 총 4자리의 공백이 들어가게 되는 것이죠.
행복한 하루 되세요 :)
-
관리자2018-12-18 11:27:24
안녕하세요 길벗 수험서 운영팀입니다.
printf문의 서식을 살펴보시면 알 수 있습니다.
"합은%d %4d입니다.\n"에서 1과 0을 출력한다고 할 때,
1을 출력하면 "합은1 %4d입니다."입니다.
%4d는 4자리를 확보하여 우측부터 출력하라는 의미입니다.
여기서 1자리 숫자인 0을 출력하게 되면 앞에 공백 3개를 띄우게 됩니다.
즉, "합은1( )( )( )( )0입니다."가 출력되게 됩니다.
본래 있던 공백 1개에 %4d의 4자리 확보 중 1자리를 출력으로 쓰게 되고, 3자리가 공백에 추가되서 총 4자리의 공백이 들어가게 되는 것이죠.
행복한 하루 되세요 :)
-
관리자2018-12-20 09:24:02
안녕하세요 길벗 수험서 운영팀입니다.
해당 문제는 for문 내의 인자들의 작동 순서를 아셔야 풀 수 있는 문제 입니다.
for(①; ②; ③) {
④;
}
위의 for문이 ④를 3회 반복한다고 가정했을 때, 순서는
1회 : ①, ②(조건 참), ④, ③
2회 : ②(조건 참), ④, ③
3회 : ②(조건 참), ④, ③
4회 : ②(조건 거짓) <탈출>
이것을 34번 문제에 적용한다고 가정했을 때,
①은 i=1, ②는 i<=5 ③은 ++i와 hap+=i, ④는 System.out.printf("합은%d %4d입니다.\n", i, hap); 입니다.
1. i에 1을 저장합니다.(초기값 적용)
2. i<=5를 비교합니다.(종료값 비교 후 조건이 맞으므로)
3. i, hap을 출력합니다.(반복문 수행)
4. ++i, hap+=i를 수행합니다.(증가값 적용)
5. 2~4번 과정을 반복합니다.(종료값 비교 후 조건이 맞는 동안 반복문 수행)
마지막 회전
1. ++i, hap+=i를 수행합니다.(i=5, hap=14)
2. i<=5를 비교합니다.
3. i, hap을 출력합니다.
4. ++i, hap+=i를 수행합니다.(i=6, hap=20)
5. i<5를 비교합니다.(거짓)
6. for문 종료
위와 같이 for문이 수행되면, 마지막에 출력되는 값은
“합은5 14입니다.”가 됩니다.
(for문이 종료되는 시점에 저장된 값은 i는 6, hap은 20이지만 이것은 출력되지 않습니다.)
문의하시는 예상문제은행에 관련된 동영상을 무료로 제공하고 있습니다.
우선 제공되는 강의를 시청해 보신 후 그래도 이해가 안되는 부분에 대해 다시 질문을 주시면 자세하게 답변드리겠습니다.
강의는 상단 프리미엄존 - 토막강의 코너에 등록된
"[정보처리 특강] 기출문제 & 예상문제 문제 풀이 강좌"를 다운받아 학습하세요.
행복한 하루되세요.^^
-
*2018-12-18 14:28:29
또 질문할게 있는데,
결과가 i의 마지막 값 즉 6, i의 총 합?20이 아닌가?
그래서 답은 하나 아닌가?
합은5 14입니다.
이거 아닌가요?