책 내용 질문하기
do~while 문 문의
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
177,178
조회수
185
작성일
2019-05-14
작성자
탈퇴*원
첨부파일

어떤 경우에는 do while문에서 변수의 범위를 '<'으로 설정하고 어떤 경우에는 '<='으로 설정하는지

잘 구분이 안 갑니다. 

177페이지 문제를 보면 p에 77이란 숫자가 대치될 때까지 연산하지만, 2번 괄호에는 p<77이 들어갑니다.

178페이지 문제에서는 a에 10이란 숫자가 대치될 때까지 연산하는데, 2번 괄호에 a<=10이 들어가고요.

둘 다 문제의 마지막 항 숫자까지 대치되는 건 똑같은 것 같은데 어떨 때는 <, 어떨 때는 <=를 사용하는지

변수 범위에 대한 설명 부탁드립니다! 

답변
2019-05-21 13:53:06

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

 

do while에서 조건문이 있는 위치와 증가값이 부여되는 위치를 고려하면 계산이 가능하나, 좀 더 쉬운 방법은 마지막 값 또는 마지막 값-1을 디버깅하는 것이 가장 간편합니다.

 

int i=0;

do { 

 [코드]

 i++;

} while(i<10);

 

위의 do~while문은 i가 0일 때 [코드]를 수행한 후 i++을 수행하고, i가 9일 때 [코드]를 수행한 후 i++을 수행하여 10이 되고 i<10 조건을 만나 빠져나가게 됩니다.

 

int i=0;

do { 

 i++; 

 [코드] 

} while(i<10);

 

위의 do~while문은 i++을 수행하여 i가 1일 때 [코드]를 수행하고, i가 10일 때 [코드]를 수행한 후 i<10 조건을 만나 빠져나가게 됩니다.

 

두 개의 do~while문은 동일하게 10번 반복하지만 i의 값의 변화와 [코드]가 수행되는 위치가 변경됨을 알 수 있습니다. (첫번째 0~9 10회, 두번째 1~10 10회)

 

<나 <= 또한 위와 같은 선상에서 이해하시면 됩니다.

첫번째 do~while문에서 i<10이 아닌 i<=10으로 바꿔서 수행해보면, 두번째 do~while문과 동일하게 [코드]가 마지막에 수행되는 시점은 i가 10일 때 이겠지만, i가 0일 때 한번 더 수행되게 되는 결과가 발생하죠.(총 11번)

 

반복횟수는 조건문과 증가값을 고려하면 그대로 환산되나, 내부의 증가값의 위치나 수행해야할 [코드]의 위치에 따라 결과값은 변동이 발생할 수 있으니 마지막값이 어떻게 도출되는지 간단히 디버깅해보는 것이 좋습니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-21 13:53:06

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

     

    do while에서 조건문이 있는 위치와 증가값이 부여되는 위치를 고려하면 계산이 가능하나, 좀 더 쉬운 방법은 마지막 값 또는 마지막 값-1을 디버깅하는 것이 가장 간편합니다.

     

    int i=0;

    do { 

     [코드]

     i++;

    } while(i<10);

     

    위의 do~while문은 i가 0일 때 [코드]를 수행한 후 i++을 수행하고, i가 9일 때 [코드]를 수행한 후 i++을 수행하여 10이 되고 i<10 조건을 만나 빠져나가게 됩니다.

     

    int i=0;

    do { 

     i++; 

     [코드] 

    } while(i<10);

     

    위의 do~while문은 i++을 수행하여 i가 1일 때 [코드]를 수행하고, i가 10일 때 [코드]를 수행한 후 i<10 조건을 만나 빠져나가게 됩니다.

     

    두 개의 do~while문은 동일하게 10번 반복하지만 i의 값의 변화와 [코드]가 수행되는 위치가 변경됨을 알 수 있습니다. (첫번째 0~9 10회, 두번째 1~10 10회)

     

    <나 <= 또한 위와 같은 선상에서 이해하시면 됩니다.

    첫번째 do~while문에서 i<10이 아닌 i<=10으로 바꿔서 수행해보면, 두번째 do~while문과 동일하게 [코드]가 마지막에 수행되는 시점은 i가 10일 때 이겠지만, i가 0일 때 한번 더 수행되게 되는 결과가 발생하죠.(총 11번)

     

    반복횟수는 조건문과 증가값을 고려하면 그대로 환산되나, 내부의 증가값의 위치나 수행해야할 [코드]의 위치에 따라 결과값은 변동이 발생할 수 있으니 마지막값이 어떻게 도출되는지 간단히 디버깅해보는 것이 좋습니다.

     

    행복한 하루되세요 :)

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