2014-11-25 9 views
5

कल मैंने जावा में फॉर-लूप्स के लिए कॉमा ऑपरेटर के बारे में पढ़ा। जिसने काम किया था, वैसे ही काम किया। मैंने इस निर्माण के बारे में सोचा लेकिन यह उम्मीद के अनुसार काम नहीं करता है।क्या करें {} जबकि कॉमा ऑपरेटर के साथ, यह भी संभव है?

';' expected 
     } while((userInput < 1 || userInput > 3), wrongInput = true); 

';' expected 
     } while((userInput < 1 || userInput > 3), wrongInput = true); 

मेरा विचार है कि एक यात्रा के बाद, अगर userInput 1 और 3 के बीच नहीं था यह अगले चरण एक त्रुटि संदेश प्रदर्शित किया जाएगा दौरान बूलियन wrongInputtrue इतना है कि स्थापित करना चाहिए। यह संकेत देते हुए कि userInput अमान्य था।

private int askUserToSelectDifficulty() { 
    int userInput; 
    Boolean wrongInput = false; 

    do{ 
     if(wrongInput) println("\n\t Wrong input: possible selection 1, 2 or 3"); 
     userInput = readInt(); 
    } while((userInput < 1 || userInput > 3), wrongInput = true); 

    return userInput; 
} 

मैं कल्पना है कि यह एक के लिए पाश की सशर्त भाग के बराबर के अंदर है, कि इस अवैध वाक्य रचना है शायद क्योंकि। क्योंकि आप सशर्त भाग में अल्पविराम ऑपरेटर का उपयोग नहीं कर सकते हैं?

जहाँ मैं अल्पविराम ऑपरेटर देखा है के उदाहरण के लिए-छोरों में इस्तेमाल किया जा रहा: Giving multiple conditions in for loop in Java Java - comma operator outside for loop declaration

+1

जावा ऑपरेटरों पर एक नज़र डालें - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – Joseph118

+1

और कोमा के उन उदाहरणों को एकाधिक मान असाइन करने के लिए उपयोग किया जा रहा है लेकिन शर्तों – Joseph118

+0

@ Joseph118 यह जानकर अच्छा लगा कि, जावा में ऑपरेटर नहीं है जैसा कि एनपीई पहले से ही इंगित करता है। यह वास्तव में प्रलेखन में नहीं है। – Joop

उत्तर

1

(वैसे C/C++ अर्थ में नहीं) जावा में कोई अल्पविराम ऑपरेटर नहीं है। ऐसे कुछ संदर्भ हैं जहां आप एक अल्पविराम का उपयोग करके कई चीजों को घोषित और आरंभ कर सकते हैं, लेकिन यह आपके संदर्भ में किसी अन्य संदर्भ की तरह सामान्य नहीं है। वाक्यांश के लिए

एक तरह से अपने पाश इतना की तरह है:

while (true) { 
    userInput = readInt(); 
    if (userInput >= 1 && userInput <= 3) { 
     break; 
    } 
    println("\n\t Wrong input: possible selection 1, 2 or 3"); 
}; 
3

यह इस एक छोटे से उतारना करने के लिए सबसे अच्छा हो सकता है।

userInput = readInt(); 
while (userInput < 1 || userInput > 3) { 
    System.out.println("\n\tWrong input: possible selection 1, 2 or 3"); 
    userInput = readInt(); 
} 

यह ध्वज की आवश्यकता से बचाता है।

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