중첩 루프를 중단하면 어떻게됩니까?do while while break 루프
다음 코드를 가정 : 루프 또는 루프 동안 할 일에 대한 break 문을 발생에 종료됩니다 루프
for(int x = 0; x < 10; x++)
{
do {
if(x == 4)
break;
x++;
} while(x != 1);
}
?
중첩 루프를 중단하면 어떻게됩니까?do while while break 루프
다음 코드를 가정 : 루프 또는 루프 동안 할 일에 대한 break 문을 발생에 종료됩니다 루프
for(int x = 0; x < 10; x++)
{
do {
if(x == 4)
break;
x++;
} while(x != 1);
}
?
break
은 항상 가장 안쪽 루프를 손상시킵니다.
6.8.6.3
break 문은 작은 둘러싸 스위치의 실행 또는 반복 문을 종료합니다. 당신은 두 루프의 탈옥하려면
는 for
후 라벨을 사용하고 goto로 점프.
중단은 중단이 포함 된 가장 가까운/가장 안쪽 루프를 종료합니다. 예제에서 break는 do-while을 죽이고 control은 for() 루프로 돌아가고 for()의 다음 반복을 시작하기 만하면된다.
그러나 do() 루프와 for() 루프에서 x를 모두 수정하고 있기 때문에 실행이 불안정 할 것입니다. 외부 X가 5에 도달하면 무한 루프가 생성됩니다.
코드는 단지 그것을위한 것입니다. – sgupta
while은 중단되고 for 루프는 계속 실행됩니다. 당신이 사용하지 않는 경우
또는, 플래그를 사용할 수 goto
:
int flag = 0;
for(int x = 0; x < 10; x++)
{
do {
if(x == 4) {
flag = 1;
break;
}
x++;
} while(x != 1);
if(flag)
break; // To break the for loop
}
'break' 것입니다 당신이 원하는 경우에서, DO/동안 종료됩니다 내부 루프 –
만 종료 OUTER 루프를 빠져 나와 goto 문으로 굴려 야합니다 ... – Shark
바깥 쪽 고리에서 여러 가지 방법으로 끊어 질 수 있습니다. 'goto','return','x = 10;'등등을 설정할 수 있습니다. –