2009-06-30 10 views
6

अगर ऐसी बात मैं वाक्य रचना कल्पना कर सकते हैंजावा में प्रत्येक लूप के रूप में ऐसी कोई चीज है?

while(Integer item : group<Integer>; item > 5) 
{ 
    //do something 
} 

की तर्ज यदि इस या इस नकल करने के लिए एक तरह से की तरह कुछ था बस सोच के साथ कुछ होने थे?

उत्तर

7

नहीं है, निकटतम होगा:

for (Integer item : group<Integer>) 
{ 
    if (item <= 5) 
    { 
     break; 
    } 
    //do something 
} 
बेशक

अगर जावा कभी संक्षिप्त बंद हो जाता है, यह नेट के Enumerable.TakeWhile विधि की तरह कुछ लिखने के लिए (इस मामले में group) iterable रैप करने के लिए उचित हो सकता है और यदि स्थिति होल्डिंग बंद हो जाती है तो इसे जल्दी खत्म कर दें।

यह अब भी करने योग्य है, लेकिन ऐसा करने के लिए कोड बदसूरत होगा। संदर्भ के लिए, सी # इस प्रकार दिखाई देगा:

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

हो सकता है कि जावा अच्छा बंद होने में कुछ समय मिल जाएगा ...

+0

हेहे। मुझे कुछ सेकंड फिर से मारो। बीटीडब्ल्यू ... मुझे लगता है कि आप अपने कोड स्निपेट की पहली पंक्ति में 'while' के बजाय 'for' का उपयोग करना चाहते हैं। –

+0

एचएम। मैं सिंटैक्स के दौरान यह नहीं पहचानता। – ojrac

+0

दोह! हाँ, वास्तव में। c'n'p त्रुटि –

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

यही वह है जो मैं सोच सकता हूं।

+0

बिल्कुल मेरा सुझाव, सिवाय इसके कि आपकी हालत दिखती है कि यह मेरे लिए गलत तरीका है। –

+0

सही दिखता है, है ना? – WowtaH

+0

धन्यवाद जॉन स्कीट, इसे –

3

संदर्भ के लिए, जावा में जॉन स्कीट का दूसरा जवाब वर्तमान में, कुछ interface Predicate के लिए, कुछ ऐसा दिखाई देगा जैसे:

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

यह वाक्यविन्यास है जो अर्थशास्त्र नहीं करता है।

+0

धन्यवाद मैं इसके बारे में सोच रहा था, कि वाक्यविन्यास निश्चित रूप से चूसने के लिए –

+1

+1 बेकार – voyager

0

जावा while स्थिति आधारित है। आप जो खोज रहे हैं वह foreach निर्माण है।

0

जावा में प्रत्येक जैसी कोई चीज नहीं है, लेकिन हमें बहुत कुछ मिल गया है।

संबंधित मुद्दे