C # (다른 언어에 대해서는 자유롭게 대답하십시오) 루프에서 루프의 구조를 벗어나고 다음 반복으로 이동하는 수단으로 break와 continue의 차이점은 무엇입니까?
예:
foreach (DataRow row in myTable.Rows)
{
    if (someConditionEvalsToTrue)
    {
        break; //what's the difference between this and continue ?
        //continue;
    }
}답변
break완전히 루프를 종료합니다 continue단지 것이다 건너 뛸 현재 반복합니다.
예를 들면 다음과 같습니다.
for (int i = 0; i < 10; i++) {
    if (i == 0) {
        break;
    }
    DoSomeThingWith(i);
}중단은 루프가 첫 번째 반복에서 종료되도록합니다 DoSomeThingWith. 절대 실행되지 않습니다. 여기에 :
for (int i = 0; i < 10; i++) {
    if(i == 0) {
        continue;
    }
    DoSomeThingWith(i);
}실행하지 않음 DoSomeThingWith에 대한 i = 0,하지만 루프는 것이다 계속 하고 DoSomeThingWith위해 실행됩니다 i = 1에 i = 9.
답변
이것을 이해하는 가장 쉬운 방법은 각 키워드 뒤에 단어 “loop”를 두는 것입니다. 용어가 일상적인 문구처럼 읽 히면 이제 의미가 있습니다.
break 루프-루핑이 끊어지고 중지됩니다.
continue loop-루프는 다음 반복에서 계속 실행됩니다.
답변
break 는 프로그램 카운터가 가장 안쪽 루프의 범위를 벗어나게합니다.
for(i = 0; i < 10; i++)
{
    if(i == 2)
        break;
}이런 식으로 작동
for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto BREAK;
}
BREAK:;루프의 끝으로 계속 점프합니다. for 루프에서 계속 증가 식으로 이동합니다.
for(i = 0; i < 10; i++)
{
    if(i == 2)
        continue;
    printf("%d", i);
}이런 식으로 작동
for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto CONTINUE;
    printf("%d", i);
    CONTINUE:;
}답변
나는 휴식을 계속해야하는지 아니면 계속해야하는지 항상 혼란스러워했습니다. 이것이 내가 기억하는 데 도움이되는 것입니다.
중단 대 계속 사용시기
- Break- 헤어지는 것과 같습니다. 슬프다. 너희들은 이별하고있다. 루프가 종료됩니다.
- 계속 -오늘 휴식을 취하고 내일 모두 정리합니다 (즉, 현재 반복 건너 뛰기).
답변
breakforeach루프를 완전히 멈추고 continue다음으로 건너 뜁니다 DataRow.
답변
같이하지 않는 이상 몇 사람이있다 break하고 continue. 내가 본 최근 불만은 JavaScript : Douglas Crockford의 The Good Parts 입니다. 그러나 때로는 그중 하나를 사용하면 실제로 언어가 do-while또는do-until 루프의 스타일을.
나는 break무언가에 대한 목록을 검색하는 루프 에서 사용하는 경향이 있습니다 . 일단 발견되면 계속 진행할 점이 없으므로 종료 할 수도 있습니다.
나는 continue목록의 대부분의 요소로 무언가를 할 때 사용 하지만 여전히 몇 가지를 건너 뛰고 싶습니다.
이 break문장은 또한 누군가 또는 다른 사람으로부터 유효한 응답을 폴링 할 때 유용합니다. 대신에:
Ask a question
While the answer is invalid:
    Ask the question중복을 제거하고 사용할 수 있습니다.
While True:
    Ask a question
    If the answer is valid:
        breakdo-until내가 전에 언급 한 루프는 특정 문제에 대한 더 우아한 솔루션입니다 :
Do:
    Ask a question
    Until the answer is valid복제도 break필요 없고 필요도 없습니다.
답변
모두 매우 좋은 설명을했습니다. 도움이된다면 예제를 제공하기 위해 여전히 답변을 게시하고 있습니다.
// break statement
for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break; // It will force to come out from the loop
    }
    lblDisplay.Text = lblDisplay.Text + i + "[Printed] ";
}출력은 다음과 같습니다.
0 [인쇄] 1 [인쇄] 2 [인쇄]
따라서 i == 3 일 때 중단이 발생하므로 3 [Printed] & 4 [Printed]가 표시되지 않습니다.
//continue statement
for (int i = 0; i < 5; i++) {
    if (i == 3) {
        continue; // It will take the control to start point of loop
    }
    lblDisplay.Text = lblDisplay.Text + i + "[Printed] ";
}출력은 다음과 같습니다.
0 [인쇄] 1 [인쇄] 2 [인쇄] 4 [인쇄]
따라서 i == 3 일 때 계속 진행되므로 3 [Printed]가 표시되지 않습니다.


