책 내용 질문하기
1과목 2장 예상문제 29번과 34번
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
조회수
91
작성일
2018-07-18
작성자
탈퇴*원
첨부파일
둘다 같은 형식의 문제인데 마지막에 부정을 만들고 탈출하는 부분에서 프린트f 실행시 왜 34번은 최종값인 합은6 20입니다 라는 메세지가 출력되지 않는 것인지 궁금합니다. 그리고 어떤부분의 차이로 29번은 한줄로 최종값만 출력되고 34번은 반복횟수만큼 여러줄로 출력되는 것인지요?
답변
2018-07-19 11:46:05

안녕하세요. 길벗 수험서 운영팀입니다.

1. 29번이 한 줄만 출력되는 이유

- for문의 가장 우측에 보시면 세미콜론(;)이 포함되었음을 보실 수 있습니다. 때문에 for문은 아래 하단의 출력문을 수행하지 않고, 자기 반복 및 연산만을 수행한 뒤 출력문으로 진행하게 됩니다. 만약 출력문이 반복되게 수행되려면 아래와 같이 수정하여야 합니다.

for(a = 0; a < 5; ++a, b -= a);

System.out.printf("%d, %d\n", a ,b);

for(a = 0; a < 5; ++a, b -= a)

System.out.printf("%d, %d\n", a ,b);

2. 34번에서 “합은6 20입니다.”가 출력되지 않은 이유

for(초기값; 최종값; 증가값)

실행문장;

- for문을 처음 수행할 때 초기값을 갖은 후 최종값과 비교한 후 실행문장을 수행합니다. 이 후 부터는 증가값을 적용한 후 최종값과 비교하여 조건이 맞는 경우까지 실행문장을 반복하여 수행합니다.

for(i = 1; i <= 5; ++i, hap += i)

System.out.printf("합은%d %4d입니다.\n", i, hap);

- 위의 for문에 적용해볼 경우 처음 초기값으로 “i = 1”을 갖고, 최종값인 “i <= 5”에 맞는지 확인한 후 아래 출력문을 수행합니다. 이후 증가값에 해당하는 “++i, hap += i”를 수행한 후 다시 최종값 “i <= 5”와 비교하여 아래 출력문의 수행을 반복하는 원리입니다.

- 증가값을 수행하여 i가 5, hap이 14일 때 최종값 “i <= 5”에 맞는지 확인 후 출력문을 수행하였습니다.

- 증가값을 수행하여 i가 6, hap이 20일 때 최종값 “i <= 5”에 맞는지 확인하였으나 최종값을 넘어 아래 출력문을 수행하지 못하고 다음 구문(종료)으로 넘어가게 됩니다.

** for문의 초기값, 최종값, 증가값의 수행 순서에 주의하세요.

행복한 하루되세요.^^

  • *
    2018-07-19 11:46:05

    안녕하세요. 길벗 수험서 운영팀입니다.

    1. 29번이 한 줄만 출력되는 이유

    - for문의 가장 우측에 보시면 세미콜론(;)이 포함되었음을 보실 수 있습니다. 때문에 for문은 아래 하단의 출력문을 수행하지 않고, 자기 반복 및 연산만을 수행한 뒤 출력문으로 진행하게 됩니다. 만약 출력문이 반복되게 수행되려면 아래와 같이 수정하여야 합니다.

    for(a = 0; a < 5; ++a, b -= a);

    System.out.printf("%d, %d\n", a ,b);

    for(a = 0; a < 5; ++a, b -= a)

    System.out.printf("%d, %d\n", a ,b);

    2. 34번에서 “합은6 20입니다.”가 출력되지 않은 이유

    for(초기값; 최종값; 증가값)

    실행문장;

    - for문을 처음 수행할 때 초기값을 갖은 후 최종값과 비교한 후 실행문장을 수행합니다. 이 후 부터는 증가값을 적용한 후 최종값과 비교하여 조건이 맞는 경우까지 실행문장을 반복하여 수행합니다.

    for(i = 1; i <= 5; ++i, hap += i)

    System.out.printf("합은%d %4d입니다.\n", i, hap);

    - 위의 for문에 적용해볼 경우 처음 초기값으로 “i = 1”을 갖고, 최종값인 “i <= 5”에 맞는지 확인한 후 아래 출력문을 수행합니다. 이후 증가값에 해당하는 “++i, hap += i”를 수행한 후 다시 최종값 “i <= 5”와 비교하여 아래 출력문의 수행을 반복하는 원리입니다.

    - 증가값을 수행하여 i가 5, hap이 14일 때 최종값 “i <= 5”에 맞는지 확인 후 출력문을 수행하였습니다.

    - 증가값을 수행하여 i가 6, hap이 20일 때 최종값 “i <= 5”에 맞는지 확인하였으나 최종값을 넘어 아래 출력문을 수행하지 못하고 다음 구문(종료)으로 넘어가게 됩니다.

    ** for문의 초기값, 최종값, 증가값의 수행 순서에 주의하세요.

    행복한 하루되세요.^^

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.