सशर्त कथन Javaस्क्रिप्ट: if, else, और else if
⚡ स्मार्ट सारांश
सशर्त कथनों में Javaस्क्रिप्ट किसी शर्त का परीक्षण करके यह तय करती है कि कोड का कौन सा ब्लॉक चलेगा, और if, if…else, और if…else if…else फॉर्मेट लगभग हर उस ब्रांचिंग निर्णय को कवर करते हैं जिसकी एक शुरुआती स्क्रिप्ट को कभी भी आवश्यकता होगी।
Javaस्क्रिप्ट सशर्त कथन
सशर्त कथन मुख्यतः तीन प्रकार के होते हैं Javaलिपि.
- अगर कथन'यदि' कथन किसी शर्त के आधार पर कोड निष्पादित करता है।
- अगर ... और बयानif…else कथन में कोड के दो ब्लॉक होते हैं; जब कोई शर्त सत्य होती है, तो यह कोड के पहले ब्लॉक को निष्पादित करता है और जब शर्त गलत होती है, तो यह कोड के दूसरे ब्लॉक को निष्पादित करता है।
- यदि…अन्यथा यदि…अन्यथा कथनजब कई स्थितियों का परीक्षण करने की आवश्यकता होती है और कोड के विभिन्न ब्लॉकों को इस आधार पर निष्पादित करने की आवश्यकता होती है कि कौन सी स्थिति सत्य है, तो if…else if…else कथन का उपयोग किया जाता है।
नीचे तीनों रूपों की उनके सिंटैक्स और एक उदाहरण सहित जांच की गई है। स्क्रिप्ट चाहे किसी भी प्रारूप में हो, नियम समान रहते हैं। पृष्ठ के अंदर या किसी बाहरी फ़ाइल मेंऔर यह शर्त शीर्ष स्तर पर लिखी गई है या किसी अन्य स्तर के भीतर। समारोह.
सशर्त कथनों का उपयोग कैसे करें
सशर्त कथनों का उपयोग विभिन्न स्थितियों के आधार पर निष्पादन के प्रवाह को तय करने के लिए किया जाता है। यदि कोई शर्त सत्य है, तो आप एक क्रिया कर सकते हैं और यदि शर्त असत्य है, तो आप दूसरी क्रिया कर सकते हैं।
नीचे दिया गया आरेख उस विचार को एक चौराहे के रूप में दर्शाता है: एक ही स्थिति का मूल्यांकन एक बार किया जाता है, और नियंत्रण सही शाखा या गलत शाखा की ओर जाता है, कभी भी दोनों की ओर नहीं।
अगर स्टेटमेंट
सिंटेक्स:
if(condition) { lines of code to be executed if condition is true }
आप का उपयोग कर सकते हैं if यदि आप केवल एक विशिष्ट स्थिति की जाँच करना चाहते हैं तो स्टेटमेंट का उपयोग करें। जब कोष्ठक के अंदर का व्यंजक मूल्यांकन करता है trueब्लॉक चलता है; जब इसका मूल्यांकन होता है falseदुभाषिया इसे सीधे छोड़ देता है और स्क्रिप्ट अगले कथन के साथ आगे बढ़ती है।
इसे स्वयं आज़माएँ:
<html>
<head>
<title>IF Statments!!!</title>
<script type="text/javascript">
var age = prompt("Please enter your age");
if(age>=18)
document.write("You are an adult <br />");
if(age<18)
document.write("You are NOT an adult <br />");
</script>
</head>
<body>
</body>
</html>
उदाहरण में आगंतुक से उम्र पूछी जाती है, फिर उस मान का दो बार परीक्षण किया जाता है: एक बार 18 वर्ष और उससे अधिक आयु के लिए, और एक बार 18 वर्ष से कम आयु के लिए। क्योंकि दो अलग-अलग if कथनों का प्रयोग किया जाता है, न कि किसी elseपेज लोड होने पर हर बार दोनों स्थितियों का मूल्यांकन किया जाता है।
आधुनिक समकक्ष: ऊपर दिया गया कोड प्रकाशित रूप में ही रखा गया है। वर्तमान में Javaस्क्रिप्ट में वही लॉजिक आमतौर पर लिखा जाता है let or const के बजाय var, साथ में console.log() or textContent के बजाय document.write(), और बिना type="text/javascript" एट्रिब्यूट, जिसे HTML5 वैकल्पिक बनाता है।
यदि…अन्यथा कथन
सिंटेक्स:
if(condition) { lines of code to be executed if the condition is true } else { lines of code to be executed if the condition is false }
आप का उपयोग कर सकते हैं if...else यदि आपको एक शर्त की जांच करनी है और प्रत्येक परिणाम के लिए कोड का एक अलग ब्लॉक निष्पादित करना है, तो स्टेटमेंट का उपयोग करें। दोनों ब्लॉकों में से केवल एक ही हमेशा चलता है, इसलिए किसी अलग दूसरे परीक्षण की आवश्यकता नहीं है।
इसे स्वयं आज़माएँ:
<html>
<head>
<title>If...Else Statments!!!</title>
<script type="text/javascript">
// Get the current hours
var hours = new Date().getHours();
if(hours<12)
document.write("Good Morning!!!<br />");
else
document.write("Good Afternoon!!!<br />");
</script>
</head>
<body>
</body>
</html>
यहाँ new Date().getHours() यह ब्राउज़र घड़ी का वर्तमान घंटा 0 से 23 तक की संख्या के रूप में लौटाता है। 12 से कम कोई भी मान सुबह की शुभकामना देता है, और बाकी सभी मान आगे के समय में बदल जाते हैं। else डाली।
यदि…अन्यथा यदि…अन्यथा कथन
सिंटेक्स:
if(condition1) { lines of code to be executed if condition1 is true } else if(condition2) { lines of code to be executed if condition2 is true } else { lines of code to be executed if condition1 is false and condition2 is false }
आप का उपयोग कर सकते हैं if...else if...else यदि आप दो से अधिक शर्तों की जाँच करना चाहते हैं तो इस स्टेटमेंट का उपयोग करें। शर्तों का मूल्यांकन ऊपर से नीचे की ओर किया जाता है, निष्पादन पहली सत्य शर्त पर रुक जाता है, और अंतिम शर्त पर भी यही प्रक्रिया जारी रहती है। else जब इनमें से कोई भी मेल नहीं खाता, तो यह एक सामान्य विकल्प के रूप में कार्य करता है।
इसे स्वयं आज़माएँ:
<html>
<head>
<script type="text/javascript">
var one = prompt("Enter the first number");
var two = prompt("Enter the second number");
one = parseInt(one);
two = parseInt(two);
if (one == two)
document.write(one + " is equal to " + two + ".");
else if (one<two)
document.write(one + " is less than " + two + ".");
else
document.write(one + " is greater than " + two + ".");
</script>
</head>
<body>
</body>
</html>
दो कॉलों पर ध्यान दें parseInt(). द्वारा लौटाए गए मान prompt() ये स्ट्रिंग हैं, इसलिए इन्हें बिना रूपांतरण के तुलना करने पर संख्याओं के बजाय टेक्स्ट की तुलना होगी और "9" को "10" से बड़ा बताया जाएगा।
त्रिगुट Operator: if…else का संक्षिप्त रूप
जब एक if...else ब्लॉक केवल दो मानों के बीच चयन करता है, जबकि सशर्त (त्रिकोणीय) ऑपरेटर एक ही अभिव्यक्ति के रूप में उसी निर्णय को व्यक्त करता है। Javaस्क्रिप्ट ऑपरेटर जो तीन ऑपरेंड लेता है: एक शर्त, एक प्रश्न चिह्न, शर्त के सत्य होने पर उपयोग किया जाने वाला मान, एक कोलन और उसके असत्य होने पर उपयोग किया जाने वाला मान।
// if...else form let message; if (age >= 18) { message = "adult"; } else { message = "minor"; } // same decision as a ternary expression let label = age >= 18 ? "adult" : "minor";
जब इससे पठनीयता में सुधार हो, तब टर्नरी ऑपरेटर का उपयोग करें, न कि केवल पंक्तियों को बचाने के लिए:
- अच्छे तरह से फिट होना: किसी टेम्प्लेट स्ट्रिंग में असाइन करने, रिटर्न करने या ड्रॉप करने के लिए दो मानों में से एक का चयन करना।
- अनुपयुक्त फिट: वे शाखाएँ जो कई कथनों को चलाती हैं, उनके साइड इफेक्ट्स के लिए फ़ंक्शन को कॉल करती हैं, या जिन्हें अपने स्वयं के स्थानीय चर की आवश्यकता होती है।
- घोंसला बनाने से बचें: एक त्रिगुणीय संरचना के भीतर एक त्रिगुणीय संरचना को पढ़ना एक त्रिगुणीय संरचना की तुलना में कहीं अधिक कठिन है।
else ifजंजीर।
स्विच स्टेटमेंट बनाम if…else if…else
एक लंबा else if एक ही चर की तुलना विभिन्न निश्चित मानों से करने वाली श्रृंखला को आमतौर पर एक स्पष्ट रूप से परिभाषित किया जाता है। switch स्टेटमेंट। स्विच अपने एक्सप्रेशन का एक बार मूल्यांकन करता है, फिर मिलान करने वाले स्टेटमेंट पर जंप करता है। case; break इससे निष्पादन अगले मामले में विफल होने से रुक जाता है, और default अंतिम भूमिका निभाता है else.
switch (day) { case "Sat": case "Sun": document.write("Weekend"); break; default: document.write("Weekday"); }
ये दोनों संरचनाएं हर स्थिति में एक दूसरे के स्थान पर उपयोग नहीं की जा सकतीं:
| तुलना का बिंदु | यदि...अन्यथा यदि...अन्यथा | स्विच |
|---|---|---|
| एक प्रकार का परीक्षण | कोई भी बूलियन अभिव्यक्ति, जिसमें रेंज भी शामिल हैं जैसे कि hours<12 |
केवल निश्चित मूल्यों के विरुद्ध समानता |
| तुलना का उपयोग किया गया | आप जो भी ऑपरेटर लिखते हैं | सख्त तुलना, इसलिए "5" मिलता जुलता नहीं है 5 |
| पठनीयता | कुछ असंबंधित स्थितियों के लिए सर्वोत्तम | एक चर के कई मानों के लिए सर्वोत्तम |
| सामान्य बग | पीछे के हिस्से को भूल जाना else |
भूलकर breakजिससे निष्पादन विफल हो जाता है |
सत्य और असत्य मूल्यों में Javaस्क्रिप्ट की शर्तें
किसी स्थिति का अर्थ तुलना होना आवश्यक नहीं है। Javaस्क्रिप्ट कोष्ठकों के अंदर जो कुछ भी मिलता है उसे पहले बूलियन में परिवर्तित करती है, यही कारण है if (name) यह मान्य कोड है। केवल छह मान ही गलत में परिवर्तित होते हैं: false, 0, खाली स्ट्रिंग, null, undefined, तथा NaNस्ट्रिंग सहित बाकी सब सत्य है। "0"एक खाली ऐरे और एक खाली ऑब्जेक्ट।
शुरुआती स्क्रिप्ट में ज्यादातर सशर्त बग कुछ गलतियों के कारण होते हैं:
- तुलना के बजाय असाइनमेंट:
if (x = 5)निर्दिष्ट करता है और हमेशा सत्य होता है;if (x === 5)तुलना करता है. - ढीली समानता से आश्चर्य होता है:
==तुलना करने से पहले प्रकारों को परिवर्तित करता है, इसलिए"" == 0यह सच है। प्राथमिकता दें===. - ब्रेसेस गायब हैं: बिना
{}शाखा से केवल अगला एकल कथन ही संबंधित है, ठीक वैसे ही जैसे ऊपर दिए गए उदाहरणों में है। - अपरिवर्तित इनपुट: से मान
prompt()और फॉर्म फ़ील्ड स्ट्रिंग हैं जब तकparseInt()orNumber()उन्हें परिवर्तित करता है। - अपठनीय शाखाएँ: एक में
else ifश्रृंखला में, सबसे संकीर्ण स्थिति को पहले रखें, अन्यथा व्यापक पूर्व परीक्षण हमेशा विजयी होगा।

