책 내용 질문하기
253쪽 반복문 질문입니다
도서
2022 시나공 정보처리산업기사 실기
페이지
253
조회수
344
작성일
2022-04-06
작성자
탈퇴*원

답은 120.000이던데 잘못된거 아닌가요?

처음부터 1 *= 0이 돼서 p는 0이 되고 계속해서 0에다 1~4까지 곱하니 결국엔 0.000이 돼야하는거 아닌가요?

답변
2022-04-07 09:57:34

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

 

for문의 수행 순서를 알아두실 필요가 있습니다.

for문을 간략화 시키면 다음과 같습니다.

  for(①; ②; ③) 

     ④;

 

for문이 5회 반복한다고 가정할 때 다음과 같이 각 부분이 수행됩니다.

1회 : ①, ②(조건 참), ④

2회 : ③, ②(조건 참), ④

3회 : ③, ②(조건 참), ④

4회 : ③, ②(조건 참), ④

5회 : ③, ②(조건 참), ④

종료 : ③, ②(조건 거짓) <탈출>

 

이것을 문제의 for문에 적용시키면

실행 코드가 없으니 ④번이 사라지고, ③번이 두 개로 늘어나겠네요.

 

1회 : ①, ②(조건 참)

2회 : ③-1 ③-2, ②(조건 참)

3회 : ③-1 ③-2, ②(조건 참)

4회 : ③-1 ③-2, ②(조건 참)

5회 : ③-1 ③-2, ②(조건 참)

종료 : ③-1 ③-2, ②(조건 거짓) <탈출>

 

회원님은 첫 회전에 0이 곱해져서 결과로 0이 될 수밖에 없다고 하셨으나,

위의 순서대로 코드를 수행하게 되면,

i=0 -> i<5 -> i++ -> p*=i -> ....

가 됩니다. p에 처음 곱해지는 i의 값은 중간에 수행되는 i++로 인해 0이 아닌 1이 되는 것이죠.

 

혹여나 후치연산 때문에 나중에 수행되는 것이 아니냐 물으신다면, 

전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다.

즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐,

위와 같이 쉼표로 구분되어 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

 

행복한 하루되세요 :)

  • 관리자
    2022-04-07 09:57:34

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

     

    for문의 수행 순서를 알아두실 필요가 있습니다.

    for문을 간략화 시키면 다음과 같습니다.

      for(①; ②; ③) 

         ④;

     

    for문이 5회 반복한다고 가정할 때 다음과 같이 각 부분이 수행됩니다.

    1회 : ①, ②(조건 참), ④

    2회 : ③, ②(조건 참), ④

    3회 : ③, ②(조건 참), ④

    4회 : ③, ②(조건 참), ④

    5회 : ③, ②(조건 참), ④

    종료 : ③, ②(조건 거짓) <탈출>

     

    이것을 문제의 for문에 적용시키면

    실행 코드가 없으니 ④번이 사라지고, ③번이 두 개로 늘어나겠네요.

     

    1회 : ①, ②(조건 참)

    2회 : ③-1 ③-2, ②(조건 참)

    3회 : ③-1 ③-2, ②(조건 참)

    4회 : ③-1 ③-2, ②(조건 참)

    5회 : ③-1 ③-2, ②(조건 참)

    종료 : ③-1 ③-2, ②(조건 거짓) <탈출>

     

    회원님은 첫 회전에 0이 곱해져서 결과로 0이 될 수밖에 없다고 하셨으나,

    위의 순서대로 코드를 수행하게 되면,

    i=0 -> i<5 -> i++ -> p*=i -> ....

    가 됩니다. p에 처음 곱해지는 i의 값은 중간에 수행되는 i++로 인해 0이 아닌 1이 되는 것이죠.

     

    혹여나 후치연산 때문에 나중에 수행되는 것이 아니냐 물으신다면, 

    전치/후치 증감 연산자가 식에 영향을 주는 것은 '하나의 식' 안에서 뿐입니다.

    즉, sum = sum + i++; 과 같이 세미콜론(;) 또는 쉼표(,)로 구분되는 각 식 내에서만 전/후가 의미가 있을 뿐,

    위와 같이 쉼표로 구분되어 개별로 사용될 때는 그저 1을 증가시키는 역할 외에 다른 역할을 수행하지 못합니다. 

     

    행복한 하루되세요 :)

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