goto 문
*C언어에서 goto문은 프로그램의 실행 흐름을 특정 레이블로 이동시키는데 사용됩니다.
>> goto문은 이 이름을 참조하여 프로그램 실행을 그 지점으로
이동 시킵니다(순간이동!!)
int main() {
printf("첫번째 출력문입니다.\n");
printf("두번째 출력문입니다.\n");
goto third; // third 레이블로 이동
printf("이 문장은 보이지 않을것 입니다.\n"); //패스
third: // 여기로 뿅
printf("세번째\n");
printf("네번째\n");
printf("다섯번째\n");
return 0;
}goto _____ ;
>>해당 _____로 즉시 이동. 여기서 _____를 label(레이블)이라 함
스파게티 코드
: goto문을 너무 많이 중첩해서 써서, 이곳 저곳 막 이동하는 코드를 작성했을 경우 이것의 흐름이 스파게티면 같이 얽혀있다고 해서 스파게티 코드라고 말한다.
continue
바로 다음 반복 회차로 넘기는 키워드
: 내가 원하지 않는 값이나, 내가 원하는 값이 나왔을때 다음 반복문으로 넘어갈 수 있는 방법,,
예를 들어 0부터 9까지 반복 출력할때 2는 뛰어넘고 싶다!
10부터 0까지 반복하는데 홀수는 출력하고 싶지 않다!
>> 바로 다음 반복문으로 즉시 넘어가게 함.
int main() {
int i;
for(i=0;i<10;i++) {
if(i%2 == 0) {
continue; //이부분을 만나는 순간, 밑을 수행하지 않고
} //반복문으로 바로 올라감
printf("i = %d\n",i);
}
return 0;
}>>즉 이 코드는 홀수를 뽑아내는 것이다
int main() {
int i = 0; //i는 0으로 시작
while(i<10) {
i++; //반복문에 들어오자마자 1이 증가
//if문은 0을 거치지 않고 1부터 시작됨
if(i%2 != 0){ //홀수에 해당하는 경우 continue를 만남
continue;
}
//continue를 만나지 않는 경우 if문을 통과하여 실행
printf("i=%d\n", i); //i는 2,4,6,8,10
}
return 0;
}핵심!
원하는 곳으로 이동(goto) 다음 반복문 이동(continue) goto가 있다? 레이블이 어디 있는지 확인하자 continue는 단순히 다음 반복으로 넘어가는 것 goto와 같은 순간이동 코드가 여기저기 있어서 읽기 복잡하게 얽혀있는 것은? 스파게티 코드
Share article