"브레이크"는 "for", "where", "do-here", "switch", "if"문에만 작동합니까?
예를 들어, 제게if
A 내부의 진술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:
제약
파단문은 스위치 본체 또는 루프 본체에만 표시되어야 합니다.
의미론
중단문은 가장 작은 엔클로저 스위치 또는 반복문의 실행을 종료합니다.
break
if 절에서 벗어나지 않고 가장 가까운 루프 또는 스위치 절에서 나옵니다.또한 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
'source' 카테고리의 다른 글
xlsxwriter로 쓸 때 통화 기호 설정 (0) | 2023.10.24 |
---|---|
Linux에서 가장 빠른 화면 캡처 방법 (0) | 2023.10.24 |
Mysql을 시작하면 Xampp에서 종료됩니다. (0) | 2023.10.19 |
텍스트 영역에서 커서 위치를 얻으려면 어떻게 해야 합니까? (0) | 2023.10.19 |
사용자 정의 워드프레스 테마에 메뉴 지원 추가 (0) | 2023.10.19 |