반응형
Goto와 Label
보통 C언어를 배우면 goto를 사용하지 말라고 하는데, 사실 goto가 유용한 경우가 한정적으로 존재하기는 한다.
여러겹의 loop로 싸인 곳을 탈출할 때에 특히 유용하다. 이런식이다.
for(...)
for(...)
for(...){
...
if(disaster)
goto error;
}
...
error:
do error handling
goto를 사용해서 배열간 같은 원소의 존재유무를 찾는 프로그램을 짜면
#include<stdio.h>
int main(){
int i, j, n, m;
int a[] = {1,2,3,4,5,6};
int b[] = {7,8,9,10,11,12,1};
n = sizeof(a)/sizeof(int);
m = sizeof(b)/sizeof(int);
for(i = 0; i < n; i++)
for(j = 0; j<m; j++)
if(a[i]==b[j])
goto found;
found:
printf("found!");
}
출력
found!
물론 이렇게 쓸 수도 있다.
#include<stdio.h>
int main(){
int i, j, n, m;
int found;
int a[] = {1,2,3,4,5,6};
int b[] = {7,8,9,10,11,12,1};
n = sizeof(a)/sizeof(int);
m = sizeof(b)/sizeof(int);
for(i = 0; i < n; i++)
for(j = 0; j<m; j++)
if(a[i]==b[j])
found = 1;
if(found)
printf("found!");
}
반응형
'Programming Tools > TCPL C Language' 카테고리의 다른 글
[C Language] Chap.4 Functions and Program Structure (0) | 2021.06.20 |
---|---|
[C Language] Chap.3 Control Flow - comma `,` 연산자 (0) | 2021.06.11 |
[C Language] Chap.3 Control Flow - Break, Continue (0) | 2021.06.10 |
[C Language] Chap.3 Control Flow - do-while loop(do-while 문) (0) | 2021.06.10 |
[C Language] Chap.3 Control Flow - While, For(While문, For문) (0) | 2021.06.08 |