सशर्त कथन Javaस्क्रिप्ट: if, else, और else if

⚡ स्मार्ट सारांश

सशर्त कथनों में Javaस्क्रिप्ट किसी शर्त का परीक्षण करके यह तय करती है कि कोड का कौन सा ब्लॉक चलेगा, और if, if…else, और if…else if…else फॉर्मेट लगभग हर उस ब्रांचिंग निर्णय को कवर करते हैं जिसकी एक शुरुआती स्क्रिप्ट को कभी भी आवश्यकता होगी।

  • 🔘 सिंटेक्स: एक if स्टेटमेंट अपने ब्लॉक को तभी चलाता है जब कोष्ठक के अंदर की शर्त सही साबित होती है।
  • ️ दो शाखाएँ: if…else फॉर्मेट एक फॉलबैक ब्लॉक प्रदान करता है जो शर्त गलत होने पर चलता है।
  • ✅ कई शाखाएँ: एल्स इफ लूप का उपयोग करके कई शर्तों का क्रम से परीक्षण किया जाता है और पहले मेल खाने पर रुक जाता है।
  • 🧪 संक्षिप्त रूप: टर्नरी ऑपरेटर एक साधारण if…else को एक ऐसे एक्सप्रेशन में संघनित करता है जो एक मान लौटाता है।
  • ️ वैकल्पिक: एक स्विच स्टेटमेंट एक लंबी श्रृंखला की तुलना में कई निश्चित विकल्पों के विरुद्ध एक मान की अधिक सुव्यवस्थित तरीके से तुलना करता है।
  • 📊 नुकसान: गलत मान, एक अनावश्यक असाइनमेंट ऑपरेटर और अनुपस्थित ब्रैकेट अधिकांश सशर्त त्रुटियों का कारण बनते हैं।

सशर्त कथन Javaलिपि

Javaस्क्रिप्ट सशर्त कथन

सशर्त कथन मुख्यतः तीन प्रकार के होते हैं Javaलिपि.

  1. अगर कथन'यदि' कथन किसी शर्त के आधार पर कोड निष्पादित करता है।
  2. अगर ... और बयानif…else कथन में कोड के दो ब्लॉक होते हैं; जब कोई शर्त सत्य होती है, तो यह कोड के पहले ब्लॉक को निष्पादित करता है और जब शर्त गलत होती है, तो यह कोड के दूसरे ब्लॉक को निष्पादित करता है।
  3. यदि…अन्यथा यदि…अन्यथा कथनजब कई स्थितियों का परीक्षण करने की आवश्यकता होती है और कोड के विभिन्न ब्लॉकों को इस आधार पर निष्पादित करने की आवश्यकता होती है कि कौन सी स्थिति सत्य है, तो if…else if…else कथन का उपयोग किया जाता है।

नीचे तीनों रूपों की उनके सिंटैक्स और एक उदाहरण सहित जांच की गई है। स्क्रिप्ट चाहे किसी भी प्रारूप में हो, नियम समान रहते हैं। पृष्ठ के अंदर या किसी बाहरी फ़ाइल मेंऔर यह शर्त शीर्ष स्तर पर लिखी गई है या किसी अन्य स्तर के भीतर। समारोह.

सशर्त कथनों का उपयोग कैसे करें

सशर्त कथनों का उपयोग विभिन्न स्थितियों के आधार पर निष्पादन के प्रवाह को तय करने के लिए किया जाता है। यदि कोई शर्त सत्य है, तो आप एक क्रिया कर सकते हैं और यदि शर्त असत्य है, तो आप दूसरी क्रिया कर सकते हैं।

नीचे दिया गया आरेख उस विचार को एक चौराहे के रूप में दर्शाता है: एक ही स्थिति का मूल्यांकन एक बार किया जाता है, और नियंत्रण सही शाखा या गलत शाखा की ओर जाता है, कभी भी दोनों की ओर नहीं।

फ्लोचार्ट जो दर्शाता है Javaस्क्रिप्ट की स्थिति सही पथ और गलत पथ में विभाजित हो जाती है

अगर स्टेटमेंट

सिंटेक्स:

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() or Number() उन्हें परिवर्तित करता है।
  • अपठनीय शाखाएँ: एक में else if श्रृंखला में, सबसे संकीर्ण स्थिति को पहले रखें, अन्यथा व्यापक पूर्व परीक्षण हमेशा विजयी होगा।

अक्सर पूछे जाने वाले प्रश्न

एक एकल = यह एक मान निर्दिष्ट करता है और अनजाने में स्थिति को सत्य बना देता है। == प्रकारों को परिवर्तित करने के बाद तुलना करता है, इसलिए "" == 0 सच हैं। === यह मान और प्रकार की एक साथ तुलना करता है और डिफ़ॉल्ट रूप से अधिक सुरक्षित विकल्प है।

एआई सहायक अपरिचित शब्दों को दोहरा सकते हैं। else if सरल शब्दों में श्रृंखला का वर्णन करें, प्रत्येक शाखा तक पहुँचने वाले इनपुट मानों का सुझाव दें, और एक ऐसी स्थिति को चिह्नित करें जो कभी सत्य नहीं हो सकती। कोड को हमेशा स्वयं चलाकर देखें, क्योंकि यह स्पष्टीकरण केवल एक सुझाव है, प्रमाण नहीं।

अक्सर हाँ। गिटहब कोपिलॉट यह किसी टिप्पणी या आंशिक शर्त से ब्रांचिंग कोड को पूरा करता है। इसके द्वारा चुने गए सीमा मानों की जाँच करें, क्योंकि एक जनरेटेड कोड > जहां आपको जरूरत थी >= इसे आसानी से नजरअंदाज किया जा सकता है।

भाषा की कोई सीमा नहीं है। किसी भी शाखा के भीतर कोई भी कथन दिखाई दे सकता है, जिसमें आगे का कथन भी शामिल है। ifदो स्तरों से आगे तर्क को समझना मुश्किल हो जाता है, इसलिए परीक्षणों को इनके साथ संयोजित करें। && या फिर जल्दी लौट आएं।

नहीं। बिना कोष्ठक के शाखा केवल अगले एकल कथन का स्वामित्व रखती है, यही कारण है कि ऊपर दिए गए उदाहरण काम करते हैं। फिर भी कोष्ठक जोड़ना अनुशंसित है, क्योंकि बाद में जोड़ी गई दूसरी पंक्ति चुपचाप शाखा के बाहर आ जाती है।

&& यह तभी सत्य होता है जब दोनों पक्ष सत्य हों, और || यह तब सत्य होता है जब दोनों में से कोई एक पक्ष सत्य हो। दोनों पक्ष शॉर्ट-सर्किट हो जाते हैं: परिणाम तय हो जाने के बाद दाहिने पक्ष का मूल्यांकन कभी नहीं किया जाता।

getHours() यह आगंतुक की अपनी घड़ी के वर्तमान घंटे को 0 से 23 तक की संख्या के रूप में लौटाता है, इसलिए 12 के साथ तुलना करने पर दिन को बिना किसी अतिरिक्त विश्लेषण के सुबह और दोपहर में विभाजित किया जाता है।

नहीं. Javaस्क्रिप्ट में दो अलग-अलग कीवर्ड का उपयोग किया गया है, else ifउनके बीच एक खाली जगह के साथ। एक शब्द elseif यह PHP और कुछ टेम्प्लेट भाषाओं से संबंधित है और ब्राउज़र में सिंटैक्स त्रुटि उत्पन्न करता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: