c 중첩루프 빠져나오기(+ goto)

떵떵·2022년 6월 16일
0

반복문을 나오는 방법으로 break문을 알아봤었다. 하지만 break문은 중첩루프를 빠져나오기 위해선 추가적인 코드가 더 필요하다.

int main()
{
	int num=0;
    int q = 1;
    for (int i=0; i<10; i++)
    {
    	for(int j=0; j<10; j++)
        {
        	if(num==20)
            {
            	q = 0;
            	break;  
            } 
            num++;
        }
    if (q==0);
    	break;
    }
}

위 처럼 break;의 특징은 현재 반복문만 끝내는 것이다.
j 반복문을 break 해도 i 반복문은 계속 실행되기 때문에 break문으로 중첩 루프를 빠져나오기 위해선 반복문 마다 break을 할 코드가 필요하다.

이런 상황에서 goto문을 활용하면 손쉽게 제어흐름을 벗어날 수 있다.

int main()
{
	int sum = 0;
    
    for (int i=0; i<10; i++)
    {
    	for(int j=0; j<10; j++)
        {
        	if (sum==20)
            	goto EXIT;
            sum++;
        }
    }
    
    EXIT:
}

goto EXIT를 하면 if문의 조건식이 충족될 떄 중첩루프문 바깥의 EXIT 레이블로 이동하기 떄문에 한번에 중첩루프를 탈출 할 수 있다.

0개의 댓글