मेरे दोस्तों में से एक जावास्क्रिप्ट के साथ एक प्रोग्रामिंग क्लास पढ़ रहा है और उसके असाइनमेंट में से एक संख्या अनुमान लगाने वाला गेम बनाना था।क्या जावास्क्रिप्ट में ब्रेक कीवर्ड केवल लूप को तोड़ने के लिए है?
funProgram: for(;;) {
numberGuesser: {
var num = (Math.random() * 100) | 0;
var guess = +prompt("I'm thinking of a number between 0 and 100. Try to guess it.", 0);
var guesses = 1;
guess: for(;;) {
higher: {
lower: {
if(guess === num) break guess;
if(guess > num) break lower;
guess = +prompt("Too low. Try again.", 0);
break higher;
}
guess = +prompt("Too high. Try again.", 0);
}
guesses++;
}
alert("You got it in " + guesses + " guesses! The number is " + num);
}
var again = prompt("Do you want to guess again (y/n)?", "y") === "y";
if(!again) break funProgram;
}
उसने मुझसे कहा कि यह अपने कोड लेबल और इसके चारों ओर ब्लॉक रैप करने के लिए ताकि आप आसानी से देख सकते हैं कि प्रत्येक अनुभाग कर रही है एक अच्छा अभ्यास है: यह उसके उदाहरण दिया गया था। उन्होंने यह भी कहा कि लेबल किए गए ब्रेक और जारी किए गए लोगों की तुलना में जारी रखना बहुत आसान है क्योंकि आप जान सकते हैं कि आप वास्तव में क्या कर रहे हैं। मैंने इस तरह के किसी भी कोड पैटर्न कभी नहीं देखा है, इसलिए मुझे यकीन नहीं है कि यह सच है या नहीं।
मैं थोड़ी देर के लिए जावास्क्रिप्ट का उपयोग कर रहा हूं और यहां कुछ चीजें हैं जिन्हें मैंने पहले कभी नहीं देखा है और कुछ चीजें जिन्हें मैं अभी भी समझ नहीं पा रहा हूं। मैंने सोचा कि break
कीवर्ड विशेष रूप से लूप से बाहर निकलने के लिए था। higher
और lower
ब्लॉक लूप नहीं हैं, लेकिन स्पष्ट रूप से आप अभी भी इसे तोड़ सकते हैं। वो कैसे संभव है? ऐसा लगता है कि लूप नहीं है जो कुछ तोड़ने के लिए मेरे लिए अजीब लगता है। क्या आप break
कीवर्ड का उपयोग कर कार्यों से भी बाहर निकल सकते हैं?
+1। मैं विपरीत बाड़ पर एक होगा ... "वह"। मैं कहूंगा कि सभी "मानक" ब्रेक लेबलिंग कोड * कम * पठनीय बना देगा, क्योंकि लेबल के "रोज़गार के उपयोग" की कमी से यह खड़ा हो जाता है "यह मानक 'ब्रेक' से अलग है, जिसका अर्थ है कि मैं ' यह सुनिश्चित करने में समय लगेगा कि यह 'ब्रेक' वास्तव में काम करता है जैसा कि लेबल के बिना होगा। – JimmiTh