"안녕, 아미고!

"안녕 엘리."

"이미 루프를 공부하셨군요. 멋지네요."

"동의합니다! 이제 나는 그들 없이는 사는 방법을 완전히 모릅니다."

"때로는 그것들 없이도 할 수 있습니다... 하지만 더 자주 그것들이 필요할 것입니다. 오늘 우리는 일정보다 앞서 루프에서 벗어나야 하는 상황에 대해 이야기할 것입니다."

"루프를 계속하기 위한 조건이 참이지만 여전히 루프를 종료해야 하는 경우를 의미합니까?"

"정확합니다! 때때로 당신은 이미 프로그래머인 것처럼 들릴 때가 있습니다. 어쨌든, 일정보다 빨리 루프에서 벗어나려면 break 문 을 사용할 수 있습니다 . 다음 예를 살펴보십시오.

암호 설명
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
프로그램은 를 입력할 때까지 키보드에서 한 줄을 읽습니다 "exit".

"알겠습니다. 프로그램은 콘솔에서 줄을 읽습니다. 를 입력하면 "exit"변수 isExit가 가 되고 true루프 조건이 가 되며 루프가 종료됩니다."!isExitfalse

"그렇습니다. 따라서 Java에는 break이러한 논리를 단순화할 수 있는 특수 문이 있습니다. break문이 루프 내에서 실행되면 루프가 즉시 종료됩니다. 프로그램은 루프 다음에 오는 문 실행을 시작합니다. 문은 매우 간단합니다. :

break;

break" 방금 논의한 예를 다시 작성하기 위해 명령문을 사용하는 방법은 다음과 같습니다 .

암호 설명
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
프로그램은 를 입력할 때까지 키보드에서 한 줄을 읽습니다 "exit".

"어쩌면 그것을 기억할 것입니다. 도움이 될 것 같습니다."

"그러나 break루프의 동작을 제어할 수 있는 유일한 Java 문은 아닙니다. Java에도 문이 있습니다 . 루프 내에서 문을 continue실행하면 루프의 현재 반복이 예정보다 빨리 종료됩니다."continue

"반복이란 무엇을 의미합니까?"

"루프 반복은 루프 본문의 한 번의 실행입니다. continue문은 루프의 현재 반복을 중단하지만 break문과 달리 루프 자체를 종료하지 않습니다. 문도 간단합니다.

continue;

"그래서 continue루프의 특정 반복 실행을 '건너뛰고' 싶은 경우 루프에서 명령문을 사용할 수 있습니까?"

break"맞아요. 와 의 차이를 이해하셨나요 continue? 20개의 반복되지 않는 숫자 중 7을 찾아야 한다면 어떤 종류의 루프 및 루프 중단 문을 사용하시겠습니까?

"음... 숫자를 다 훑어보고 7을 찾으면 break."

1"로 나누어지는 숫자를 제외하고 에서 까지 20의 숫자 를 표시해야 한다면 어떻게 하시겠습니까 7?"

continue"음, 루프를 종료하고 싶지 않기 때문에 아마도 가 필요할 것입니다 . 하지만 여전히 잘 이해가 되지 않습니다."

"이 문제를 해결하는 방법을 보여드리겠습니다. 이 코드는 다음과 같습니다."

암호 설명
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
프로그램은 에서 1까지 의 숫자를 표시합니다 20. 숫자를 로 나눌 수 있는 경우 7(나머지 나누기 는 7) 0 숫자 표시를 건너뜁니다.

"엘리야, 왜 그렇게 의심스럽게 쳐다보는 거야? 여기 무슨 문제라도 있어?"

"속일 수 없습니다, 아미고! 실제로 이 코드는 올바르게 작동하지 않습니다 . 처음 6자리를 표시한 다음 i숫자에 영원히 고정된 상태로 유지됩니다 . 7결국 이 continue명령문은 두 개의 다른 명령문을 건너뜁니다 System.out.println(i). i++결과적으로 값에 도달하면 7변수 i변경이 중지되고 무한 루프에 빠지게 됩니다. 매우 일반적인 실수를 설명하기 위해 의도적으로 이 방법으로 코드를 작성했습니다."

"어떻게 고칠까요?"

"여기에는 두 가지 옵션이 있습니다."

옵션 1:i 실행하기 전에 변경 continue하지만 이후에 변경i % 7

옵션 2:i 루프 시작 시 항상 증가합니다 . 그러나 then i의 시작 값은 이어야 합니다 0.

옵션 1 옵션 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }

   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}

"좋아요! 실수하지 않도록 노력하겠습니다."

"당신의 약속을 기억하겠습니다!"