답변:
continue
레이블이없는 문은 조건이 가장 안쪽에서 다시 실행됩니다 while
또는 do
루프, 그리고 가장 안쪽의 업데이트 표현에서 for
루프. 루프의 처리를 조기에 종료하여 깊은 if
문장 을 피하는 데 종종 사용됩니다 . 다음 예제 continue
에서는 루프에서 다음 명령문을 처리하지 않고 다음 행을 가져옵니다.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
레이블을 사용 continue
하면 가장 안쪽 루프가 아닌 해당 레이블이있는 루프에서 다시 실행됩니다. 이것은 깊게 중첩 된 루프를 피하거나 명확성을 위해 사용될 수 있습니다.
continue
빈 루프 본문을 더 명확하게하기 위해 자리 표시 자로 사용되는 경우 도 있습니다.
for (count = 0; foo.moreData(); count++)
continue;
C 및 C ++에는 레이블이없는 동일한 명령문도 있습니다. Perl의 해당 값은 next
입니다.
이 유형의 제어 흐름은 권장되지 않지만, 원하는 경우 continue
제한된 형식의 시뮬레이션에 사용할 수도 있습니다 goto
. 다음 예제 continue
에서 빈 for (;;)
루프를 다시 실행합니다 .
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
일반적으로 continue
(및 break
)는 특히 or 루프 선언이 즉시 보이지 않는 경우 코드에서 일부 리팩토링을 사용할 수 있다는 경고로 간주합니다 . 메소드 중간에서도 마찬가지 이지만 약간 다른 이유가 있습니다.while
for
return
다른 사람들이 이미 말했듯이, continue
루프의 다음 반복으로 break
이동 하면서 둘러싼 루프 밖으로 이동합니다.
컨텍스트와는 달리 continue
/ break
와 루프 사이에 즉각적인 링크가 없기 때문에 유지 보수 시한 폭탄 일 수 있습니다 . 내부 루프를 추가하거나 루프의 "guts"를 별도의 메소드로 이동하면 continue
/ break
실패 의 숨겨진 효과가 있습니다.
IMHO, 최후의 수단으로 사용하는 것이 가장 좋습니다. 그런 다음 루프의 시작 또는 끝에서 사용이 밀접하게 그룹화되어 다음 개발자가 한 화면에서 루프의 "바운드"를 볼 수 있도록하십시오. .
continue
, break
및return
(귀하의 메소드 끝에있는 하나의 진정한 수익 이외)는 모두 "숨겨진 GOTO"의 일반 범주에 속합니다. 루프와 함수 제어를 예기치 않은 곳에 배치하여 결국 버그를 유발합니다.
이미 언급했듯이 continue
아래 코드를 처리하지 않고 루프가 끝날 때까지 처리하지 않습니다. 그런 다음 루프 조건으로 이동합니다 하고이 조건이 계속 유지되는 경우 (또는 표시된 루프 조건에 대한 플래그가있는 경우) 다음 반복을 실행하십시오.
do - while
당신이 경우의 하단에있는 상태로 이동 하는 경우 강조 표시해야합니다continue
루프 시작이 아니라 .
이것이 많은 사람들이 다음 코드가 생성하는 내용에 올바르게 대답하지 못하는 이유입니다.
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* 응답에 aSet
100 %의 홀수 만 포함 된다면 ... 잘못된 것입니다!
계속 은 키워드입니다 Java 이며 현재 반복을 건너 뛰는 데 사용됩니다.
1에서 100까지의 모든 홀수를 인쇄한다고 가정합니다.
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
위 프로그램의 continue 문은 i 가 짝수 일 때 반복을 건너 뛰고 홀수 일 때 i 값을 인쇄합니다 .
Continue 문은 루프 내부의 나머지 명령문을 실행하지 않고 단순히 루프에서 빠져 나와 다음 반복을 트리거합니다.
다른 조건 인 경우를 고려하십시오. continue 문은 조건에있는 것을 실행하고 조건을 벗어나는 것, 즉 다음 반복 또는 조건으로 이동합니다. 그러나 휴식은 루프를 떠납니다. 다음 프로그램을 고려하십시오. '
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
다음과 같이 인쇄됩니다 : aa cc 루프 외부.
continue (After if.) 대신 break를 사용하면 aa를 인쇄하고 루프를 벗어납니다 .
"bb"조건이 ss와 같으면 다음을 수행하십시오. 계속 : 다음 반복으로 이동합니다 (예 : "cc".equals (ss)). 중단의 경우 : 루프에서 나오고 "Out of the loop"를 인쇄합니다.
break
나는 파티에 조금 늦었지만 ...
continue
루프를 제어하는 조건식에서 모든 작업이 수행되는 빈 루프에 유용하다는 점 은 언급 할 가치가 있습니다. 예를 들면 다음과 같습니다.
while ((buffer[i++] = readChar()) >= 0)
continue;
이 경우 문자를 읽고 추가하는 모든 작업은 루프를 buffer
제어하는 식에서 수행됩니다 while
. 그만큼continue
문 루프 본체를 필요로하지 않는 시각적 표시로서 기능한다.
동등한 것보다 조금 더 분명합니다.
while (...)
{ }
빈 문장을 사용하는 것보다 확실히 더 좋고 (보다 안전한) 코딩 스타일 :
while (...)
;
while
이 본문의 본문이되고 while
시각적으로 명확하지 않을 것입니다. 명시 continue
적은 명백하며 빈 명령문이 의도하지 않은 의도를 전달합니다.
기본적으로 Java에서 continue는 명령문입니다. 따라서 continue 문은 일반적으로 현재 반복을 건너 뛰기 위해 루프와 함께 사용됩니다.
Java에서 언제 어떻게 사용되는지는 아래 링크를 참조하십시오. 예를 들어 설명했습니다.
https://www.flowerbrackets.com/continue-java-example/
그것이 도움이되기를 바랍니다!
continue 문은 루프의 다음 반복으로 즉시 이동해야 할 때 루프 제어 구조에 사용됩니다.
for 루프 또는 while 루프와 함께 사용할 수 있습니다. Java continue 문은 루프를 계속하는 데 사용됩니다. 프로그램의 현재 흐름을 계속하고 지정된 조건에서 나머지 코드를 건너 뜁니다.
내부 루프의 경우 내부 루프 만 계속됩니다.
for 루프, while 루프 및 do-while 루프와 같은 모든 유형의 루프에서 Java continue 문을 사용할 수 있습니다.
예를 들어
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
산출:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[5 번 건너 뛰기]