JavaScript में फ्लैग के साथ काम करना

अब हम फ्लैग के साथ काम करना सीखेंगे। फ्लैग एक विशेष चर है, जो केवल दो मान ले सकता है: true और false। फ्लैग की मदद से, ऐसे कार्यों को हल किया जा सकता है जो किसी चीज की अनुपस्थिति की जाँच करते हैं: उदाहरण के लिए, यह जाँच की जा सकती है कि सरणी में एक निश्चित मान वाला कोई तत्व नहीं है। आइए शुरू करते हैं।

आइए निम्नलिखित कार्य को हल करें: एक सरणी दी गई है संख्याओं के साथ, यह जाँच करने की आवश्यकता है कि क्या इसमें मान 3 वाला तत्व है या नहीं। यदि है - '+++' प्रिंट करें, यदि नहीं - '---' प्रिंट करें।

सबसे पहले, '+++' प्रिंट करने का प्रयास करते हैं। इसके लिए हम अपनी सरणी के सभी तत्वों को पार करेंगे और if के साथ पूछेंगे - क्या वर्तमान तत्व मान 3 के बराबर है। यदि बराबर है - '+++' प्रिंट करें '+++':

javascriptlet arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++');
  }
}

लेकिन हमारा समाधान बहुत अच्छा नहीं है: क्योंकि यदि सरणी में एक नहीं बल्कि 3 के कई मान होंगे, तो '+++' कई बार प्रिंट होगा। आइए अपनी सरणी को सही करें (दो तत्व मान 3 के साथ बनाएं) और इसे सत्यापित करें:

javascriptlet arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // कई बार प्रिंट करेगा
  }
}

समस्या को ठीक करते हैं: लूप को break की सहायता से समाप्त करें, यदि तत्व पहले ही मिल गया है:

javascriptlet arr = [1, 2, 3, 4, 3, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++');
    break;  // लूप समाप्त करें
  }
}

आइए अब ऐसा करने का प्रयास करें कि, यदि सरणी में मान 3 वाला कोई तत्व बिल्कुल नहीं है, तो '---' प्रिंट हो। एक आम गलतफहमी होगी कि हमारे if में else जोड़ दें - इस स्थिति में '---' उन सभी तत्वों पर प्रिंट होगा, जो 3 नहीं हैं:

javascriptlet arr = [1, 2, 3, 4, 5];

for (let elem of arr) {
  if (elem == 3) {
    console.log('+++'); // तत्व 3 पर प्रिंट करेगा
  } else {
    console.log('---'); // तत्व 1, 2, 4, 5 पर प्रिंट करेगा
  }
}

इसलिए, else जोड़ने का विचार - एक खराब विचार है, काम नहीं करता। इस प्रकार के कार्यों को हल करने के लिए (ऐसे कार्य काफी अक्सर सामने आते हैं) तथाकथित फ्लैग का उपयोग किया जाता है।

जैसा कि ऊपर उल्लेख किया गया है, फ्लैग - एक ऐसा चर है, जो दो मान ले सकता है: true या false।

इसलिए, आइए एक चर flag बनाएं इस तरह के मान के साथ: यदि यह true के बराबर है, तो सरणी में तत्व 3 है, और यदि false है, तो ऐसा कोई तत्व नहीं है।

प्रारंभ में चर flag को मान false पर सेट करें - यानी मान लें, कि तत्व 3 सरणी में नहीं है:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // मान लें कि सरणी में तत्व 3 नहीं है

फिर हम एक लूप चलाएंगे, if के साथ, जैसा कि हमने पहले किया था। यदि लूप पता चलता है कि सरणी में तत्व 3 है - तो चर flag को मान true पर सेट करें और लूप से break के साथ बाहर निकलें:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false; // मान लें कि सरणी में तत्व 3 नहीं है

for (let elem of arr) {
  if (elem == 3) {
    flag = true; // तत्व है - चर flag को पुनः परिभाषित करें
    break; // लूप से बाहर निकलें
  }
}

इस सवाल का जवाब कि क्या सरणी में 3 है या नहीं, हम केवल लूप के बाद दे सकते हैं। और यह जवाब हमारे पास पहले से ही है: लूप के बाद चर flag false रह सकता है या true पर अपना मान बदल सकता है, यदि लूप ने सरणी में 3 का पता लगाया है:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false;

for (let elem of arr) {
  if (elem == 3) {
    flag = true;
    break;
  }
}

// यहाँ चर flag या तो true, या false के बराबर है

अब लूप के बाद, हम एक if बना सकते हैं, जो चर flag को देखेगा और '+++' या '---' स्क्रीन पर प्रिंट करेगा:

javascriptlet arr = [1, 2, 3, 4, 5];
let flag = false;

for (let elem of arr) {
  if (elem == 3) {
    flag = true;
    break;
  }
}

if (flag === true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

एक सरणी दी गई है:

javascriptlet arr = ['a', 'b', 'c', 'd', 'e'];

जाँचें कि क्या इस सरणी में तत्व 'c' है। यदि है - '+++' प्रिंट करें, और यदि नहीं - '---' प्रिंट करें।

Задание 2

एक कोड लिखें जो यह जाँचेगा कि कोई संख्या अभाज्य है या नहीं। एक अभाज्य संख्या केवल एक से और स्वयं से विभाज्य होती है, और अन्य संख्याओं से विभाज्य नहीं होती।