[첫화면으로]Diary/Loop의변수

마지막으로 [b]

1 번째 수정본
(1 번째 수정본부터 1 번째 수정본까지의 변경사항) (소소한 수정, 다른 사용자에 의한 수정)
(두 수정본의 내용이 동일하거나, 수정본을 비교할 수 없음.)

/Loop의변수

프로그래밍 질문글들 중에 자주 보이는 게, "구구단을 만들었는데 2단만 출력되고 끝나버려요"더라.
int dan=2, num=1;

while (dan<10)
{
    // 이 지점에서 num=1 로 다시 초기화해야 함
    while (num<10)
    {
        printf("%d x %d = %d\n", dan, num, dan*num);
        num++;
    }
    dan++;
}

이유야 쉽게 알 수 있듯이 안쪽 루프가 다 끝났을 때 num값은 10이고, 그 상태에서 바깥쪽 루프의 다음 반복 시점에서 안쪽 루프 조건이 거짓이 되어 바로 끝나버리기 때문인데...

질문자들 중에 대부분은 저 주석이 있는 위치에서 num을 다시 1로 초기화해주라는 답변을 보면 "아하"하고 넘어가는데, 어떤 사람들은 "왜 저기에 num=1이 있어야 하나요"라고 질문을 한다.

오늘에서야 든 생각인데, 코드의 앞쪽으로 되돌아간다는 것이, 일종의 "시간을 거슬러 올라간다"는 개념으로 받아들여졌을지도 모르겠다. num값 역시 제일 처음 값이었던 1로 되돌아갔을 거라 생각이 들었을 수도? 그러고보면 그런 형태로 만들어진 프로그래밍 언어도 세상 어딘가는 있지 않을까 싶기도 하고...

다만, 그럼 dan은 왜 계속 2로 머물러 있지 않냐는 의문은 안 들까 싶긴 한데 :-)
-- Raymundo 2013-2-7 2:10 am

Comments & Trackbacks
이름:  
Homepage:
내용:
 

주인장분류

<<   /2013서버이전 (2013-03-20)[p]   | /Loop의변수 (2013-02-07) |   /퍼즐-화물열차 (2013-01-21)[n]   >>

Diary

최근 글들

코멘트와 트랙백

옛 글들

  • /Archive - 월별로 한번에 보기
  • /List - 전체 포스트 목록

RSS

주요 페이지

이 홈페이지의 인터위키는 다음과 같습니다.
GyparkWiki  UTF-8
https://gypark.pe.kr/wiki/


이 수정본 편집일: 2013-2-7 2:10 am (변경사항 [d])
1279 hits | Permalink | 변경내역 보기 [h] | 현재 수정본 보기 | 1 번째 수정본 소스 보기