728x90
C언어에서 goto문은 프로그램 수행 도중에 원하는 곳으로 제어를 무조건 옮기는 제어문입니다.
1. 사용방법
형식은 아래와 같습니다.
Label:
goto Label;
..
예제)
#include <stdio.h>
#pragma warning(disable:4996)
void main(void) {
int i,n,c = 'A';
while(1){
printf("\n 횟수는?");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("%c",c);
if(c=='Q')
goto end;//Q를 만난다면 무조건 end로 옮김
c++;
}
}
end: // 레이블 명 뒤에는 콜론(:)을 붙임
printf("\n\n종료");
}
결과)
2. goto문을 사용할 수 없는 경우
goto 문이 보내는 레이블은 제어문 안의 레이블로는 보낼 수가 없습니다.
예제) 아래 3가지 케이스모두 제대로 작동하지 않습니다.
#include <stdio.h>
#pragma warning(disable:4996)
void main(void) {
int a;
scanf("입력값은? %d",&a);
if(a == 10){
innerif:
printf("선택 제어문 안으로 이동");
}
goto innerif;
}
#include <stdio.h>
#pragma warning(disable:4996)
void main(void) {
int a;
scanf("입력값은? %d",&a);
for(int i=0;i<a;i++){
innerfor:
printf("반복 제어문 안으로 이동");
}
goto innerfor;
}
#include <stdio.h>
#pragma warning(disable:4996)
void main(void) {
int a;
scanf("입력값은? %d",&a);
for(int i=0;i<a;i++){
innerfor:
printf("반복문 안으로 이동");
}
for(int j=0;j<a;j++){
goto innerfor;
}
}
'C Programming > C' 카테고리의 다른 글
[C] 배열 (1) | 2024.05.02 |
---|---|
[C] 기억 클래스 (1) | 2024.04.26 |
[C] 함수 (0) | 2024.04.26 |
[C] 연산자 (1) | 2024.04.26 |
[C] 표준 입출력 함수 (0) | 2024.04.26 |