책 내용 질문하기
for 제어문 질문드립니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
64
조회수
904
작성일
2019-03-06
작성자
탈퇴*원
첨부파일
int a= 10; for (int i = 1 ; i<= a ; ++i) { 블라블라 } 일때 i가 a보다 작거나 같으면 전치 산술연산이니까 {블라블라}에 적용되는 i 의 최초 초기값을 1이 아닌 2로 치환해야하는게 아닌가요?? 아니면 초기값 1을 집어넣기 위해선 for (int i = 1 ; i<= a ; i++)로 선언해서 후치 산술연산으로 해야하는거 아닌가요??
답변
2019-03-07 09:51:29

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

 

for문에 대해 각 식에 대해 오해하고 계십니다.

for문 내부의 식1, 식2, 식3 또는 초기값, 최종값, 증가값, 아니면 초기값, 조건식, 증감식으로 불리는 3개의 식은 하나의 실행 코드가 아닌 3개의 코드가 for문이라는 함수 안에 묶여있는 것입니다.

 

C언어를 공부할 때 하나의 코드가 끝나는 곳에 ';' 또는 '}'를 적어야한다고 했듯이 for문 내에서도 각 식은 ';'을 통해 구분되어 있습니다.

 

이 때 ++i는 하나의 별개의 식입니다. 즉 전치가 오든 후치가 오든 결국 i=i+1을 수행하고 끝나는 것이죠.

for문의 각 식의 순서는 앞에서 학습하셨을 것입니다.

 

for(; ; ) {

  ④;

}

 

위의 for문이 3회 반복한다고 가정했을 때, 순서는

1: , (조건 참),

2: , (조건 참),

3: , (조건 참),

4: , (조건 거짓) <탈출>

입니다.

 

위의 for문에서 증가식에 해당하는 ③은 아예 별개로 수행되게 됩니다.

만약 ++i나 i++이 아닌 'i = ++i + j' 같은 식이 온다면 얘기는 달라지겠지만요.

 

행복한 하루되세요 :)

  • 관리자
    2019-03-07 09:51:29

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

     

    for문에 대해 각 식에 대해 오해하고 계십니다.

    for문 내부의 식1, 식2, 식3 또는 초기값, 최종값, 증가값, 아니면 초기값, 조건식, 증감식으로 불리는 3개의 식은 하나의 실행 코드가 아닌 3개의 코드가 for문이라는 함수 안에 묶여있는 것입니다.

     

    C언어를 공부할 때 하나의 코드가 끝나는 곳에 ';' 또는 '}'를 적어야한다고 했듯이 for문 내에서도 각 식은 ';'을 통해 구분되어 있습니다.

     

    이 때 ++i는 하나의 별개의 식입니다. 즉 전치가 오든 후치가 오든 결국 i=i+1을 수행하고 끝나는 것이죠.

    for문의 각 식의 순서는 앞에서 학습하셨을 것입니다.

     

    for(; ; ) {

      ④;

    }

     

    위의 for문이 3회 반복한다고 가정했을 때, 순서는

    1: , (조건 참),

    2: , (조건 참),

    3: , (조건 참),

    4: , (조건 거짓) <탈출>

    입니다.

     

    위의 for문에서 증가식에 해당하는 ③은 아예 별개로 수행되게 됩니다.

    만약 ++i나 i++이 아닌 'i = ++i + j' 같은 식이 온다면 얘기는 달라지겠지만요.

     

    행복한 하루되세요 :)

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