2009-06-30 3 views

답변

7

아니, 가장 가까운는 다음과 같습니다

물론
for (Integer item : group<Integer>) 
{ 
    if (item <= 5) 
    { 
     break; 
    } 
    //do something 
} 

자바 이제까지 간결 폐쇄를 얻을 경우 (이 경우 group을)를 반복자를 래핑하는 .NET의 Enumerable.TakeWhile 방법 같은 것을 작성하는 합리적인 것 및 상태가 멈 추면 일찍 끝내라.

물론 지금도 할 수 있지만 코드를 작성하는 것은 추악 할 것입니다. 참고로, C 번호는 다음과 같이 보일 것이다 :

foreach (int item in group.TakeWhile(x => x > 5)) 
{ 
    // do something 
} 

어쩌면 자바 좋은 마감 시간을 좀 얻을 것이다 ... 참고로

+0

Hehe. 다시 몇 초 동안 나를 때려. btw ... 나는 코드 스 니펫의 첫 번째 줄에서 'while'대신 'for'를 사용하기를 의도했다고 생각합니다. –

+0

흠. 구문을 인식하지 못합니다. – ojrac

+0

Doh! 예, 실제로. 그 오류에 대해 궁금해서 고맙습니다. –

3
for(Integer item : group<Integer>) 
{ 
    if (item <= 5) 
     break; 
    //do something 
} 

이것은 내가 생각할 수있는 것입니다.

+0

내 생각에 틀린 길인 것처럼 보이는 것을 제외하고는 제 제안입니다. –

+0

맞아 보이지? – WowtaH

+0

고맙습니다 Jon Skeet, 고치기 –

3

, 자바 존 소총의 두 번째 대답은 현재 일부 interface Predicate 들어 보일 것이다 like :

for (int item : takeWhile(group, new Predicate<Integer>() { 
    public boolean contains(Integer x) { 
     return x > 5; 
    } 
}) { 
    // do something 
} 

의미가 아닌 구문입니다.

+0

그 문법은 확실히 짜증납니다. –

+1

+1 – voyager

0

Java while는 조건부입니다. 당신이 찾고있는 것은 foreach 구조입니다.

0

Java에서 while-each와 같은 것은 존재하지 않지만 우리는 ~에 대한 정보를 제공합니다.

관련 문제