source

"브레이크"는 "for", "where", "do-here", "switch", "if"문에만 작동합니까?

lovecheck 2023. 10. 19. 22:26
반응형

"브레이크"는 "for", "where", "do-here", "switch", "if"문에만 작동합니까?

예를 들어, 제게ifA 내부의 진술for루프:

for( ; ; )
{
  if( )
    {
     printf(" inside if");
     break;
    }//if         

  printf("inside for");
}//for

자, 이제, 윌.break문장은 컴파일러가 밖으로 나오게 합니다.for루프 또는 그것은 오직 몸에서 나올 것입니다.if일단 병세가 악화되면if만족하게 되십니까?

break문은 가장 가까운 엔클로저 루프 또는 스위치 에서 발생합니다.

break에서 벗어나지 않습니다.if가장 가까운 곳에 있는 진술loop아니면switch라는 내용을 담고 있는if진술.한 번도 헤어지지 않은 이유는if진술은 당신이 탈출하기를 원하는지 아닌지를 결정하기 위해 일반적으로 사용되기 때문입니다.loop.

흥미롭게도, C를 발명한 회사가 정확히버그를 만들었기 때문에 전화기 스위치가 잘못 작동했습니다.그들은 탈출하기를 원했습니다.if성명서를 냈고 그들은 그것이 전체에서 일어날 것이라는 것을 잊었습니다.for진술.

그것은 탈출 할 것입니다.for고리 모양의break문은 루프에만 영향을 미칩니다(do,for,while) 및switch(A에서 이탈하기 위한) 진술case).

C99 표준, 섹션 6.8.6.3:

제약

파단문은 스위치 본체 또는 루프 본체에만 표시되어야 합니다.

의미론

중단문은 가장 작은 엔클로저 스위치 또는 반복문의 실행을 종료합니다.

breakif 절에서 벗어나지 않고 가장 가까운 루프 또는 스위치 절에서 나옵니다.또한 if 절은 그 내용을 반복하지 않기 때문에 "루프"라고 부르지 않습니다.

Break 문은 루프와 스위치 절에만 적용됩니다.어떤 경우에도 가장 가까운 엔클로저 루프에서 나옵니다.조건부 휴식, 즉 일부 if 문을 포함한 휴식을 사용하는 것이 좋습니다.모든 루프 또는 어떤 루프에서 나오려면 다음 문장으로 이동합니다.예를 들어,

while(true) {
     while (some_condition) {
          if (some_condition)
               goto label;
     }
}
label: // do something here

if 또는 other 문은 break 문을(를) 깨지지 않습니다.브레이크 문을 사용하는 경우 주로 가장 가까운 루프에서 나옵니다(루프인 경우 루프인 경우, 루프인 경우 및 스위치인 경우).

브레이크 문은 의사결정문을 만드는 데 아무 소용이 없습니다.루프에서 강제 종료하고 루프 뒤에 있는 문에서 실행을 계속하려면 루프에서만 사용됩니다."조건이 참이면 if 문에서 컨트롤이 나오게 할 것입니다."라는 질문에는 의문의 여지가 없습니다. 왜냐하면 조건이 참이고 본체가 실행되면 if 문에서 컨트롤이 경우에는 break 문에 관계없이 컨트롤이 나오기 때문입니다.if 문은 루프가 아닙니다. 전혀 기대되지 않거나 한 번만 실행됩니다.그러니까 if의 몸 안에 브레이크를 넣는 것은 전혀 말이 안 됩니다.

언급URL : https://stackoverflow.com/questions/2565659/does-break-work-only-for-for-while-do-while-switch-and-for-if-sta

반응형