2013-02-13 2 views
13

while 루프에서 반복을 건너 뛰는 우아한 방법이 있습니까? 당신은 continue; 문을 찾고while 루프에서 반복/루프를 건너 뛰는 방법

while(rs.next()) 
    { 
    if(f.exists() && !f.isDirectory()){ 
     //then skip the iteration 
    } 
    else 
    { 
    //proceed 
    } 
    } 
+1

'if'가'f.isDirectory()'를 사용하지 않는 이유는 무엇입니까? –

답변

32
while(rs.next()) 
    { 
    if(f.exists() && !f.isDirectory()) 
     continue; //then skip the iteration 

    else 
    { 
    //proceed 
    } 
    } 
6

내가 원하는 무엇

이다.

7

continue;을 추가하여 1 반복을 건너 뛰십시오.

break 키워드와 달리 continue는 루프를 종료하지 않습니다. 오히려 루프의 다음 반복을 건너 뛰고이 반복에서 더 이상의 모든 명령문 실행을 중지합니다. 이렇게하면 루프를 통해 다음 반복을 중단하지 않고 현재 시퀀스의 나머지 문을 무시할 수 있습니다. 조건이 true가 아닌 경우

http://www.javacoffeebreak.com/articles/loopyjava/index.html

3

그것의 나머지는 else 문에 있기 때문에 당신은 반복을 생략 할 필요가 없습니다, 그것은 단지 실행됩니다. 당신이 정말로 그것을 생략해야하는 경우

그러나, 당신은 continue; 문을 사용할 수 있습니다. 당신이 continue를 사용할 수 있지만

3
while (rs.next()) 
{ 
    if (f.exists() && !f.isDirectory()) 
    continue; 

    //proceed 
} 
11

, 왜 그냥 귀하의 경우에 논리를 반전? if 조건을 만족하지 않는 경우 어쨌든 계속으로

while(rs.next()) 
{ 
    if(!f.exists() || f.isDirectory()){ 
    //proceed 
    } 
} 

당신은 심지어 else {continue;} 필요하지 않습니다.

+0

거기에'&|'대신'||'가 필요합니다. –

+0

논리 반전이 올바르지 않습니다. AND 대신 AND가 있어야합니다. – lbalazscs

+0

좋은 스팟들, 지금 수정합니다. – Quetzalcoatl

관련 문제