티스토리 뷰

반응형

for문이나 while문에서는

반복을 멈추고 외부로 빠져나가는 방법을

break; 문으로 선언할 수 있다.

 

하지만 중첩 반복문에선 break;을 한 번 쓰면

반복문의 한 영역만 빠져나간다.

 

이에 반해,  goto문을 활용 하면

중첩 반복문에서 원하는 곳으로

바로 빠져나갈 수 있다.

 

goto문은 원래는 이용하는 것을 거의

금하다시피 권장하지 않는데,

이럴 때는 꽤나 유용하다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
 
int main(void)
{
    int x, y;
    for (y = 1; y < 10000; y++)
    {
        for (x = 1; x < 100; x++)
        {
            if ( _kbhit() )
                goto OUT;
            printf("*");
        }
        printf("\n");
    }

OUT:
    return 0;
}
cs

 

 

 

 

  - 설명  

중첩 for문의 반복 범위를 넉넉하게 잡아주고,

_kbhit() 함수(keyboard hit)를 이용하여

키를 입력하면 OUT으로 가게 한다.

OUT에는 return 0;으로 프로그램이 종료되도록 하였다.

(_kbhit()을 쓰기 위해서는

conio.h 헤더 파일의 삽입이 필요하다.)

 

 

 

  - 결과  

 

마지막 줄에 *가 끊긴 부분은

사용자가 키를 입력하여

_kbhit() 함수가 키를 인식하였고,

goto문에 의해 

OUT: return 0; 이 실행되어

프로그램이 종료된 것이다.

 

 

 

 

  - 한마디  

<conio.h> 헤더 파일의

_kbhit() 함수를 알게 되어 재밌었다.

키 입력과 같은 이벤트 처리를

c 라이브러리에서 보다니

더 많은 기능이 있는지 궁금하다.

반응형
댓글
반응형
Recent Post.
Recent Reply.
Thanks for comming.
오늘은
명이 방문했어요
어제는
명이 방문했어요