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

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

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

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

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      echo '+++';
    }
  }
?>

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

php<?php
  $arr = [1, 2, 3, 4, 3, 5];
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      echo '+++'; // कई बार प्रिंट करेगा
    }
  }
?>

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

php<?php
  $arr = [1, 2, 3, 4, 3, 5];
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      echo '+++';
      break;  // लूप समाप्त करें
    }
  }
?>

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

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      echo '+++'; // तत्व 3 पर प्रिंट करेगा
    } else {
      echo '---'; // तत्व 1, 2, 4, 5 पर प्रिंट करेगा
    }
  }
?>

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

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

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

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

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

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

php<?php
  $arr = [1, 2, 3, 4, 5];
  $flag = false; // मान लें कि सरणी में तत्व 3 नहीं है
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      $flag = true; // तत्व है - चर $flag को पुनः परिभाषित करें
      break; // लूप से बाहर निकलें
    }
  }
?>

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

php<?php
  $arr = [1, 2, 3, 4, 5];
  $flag = false;
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      $flag = true;
      break;
    }
  }
  
  // यहाँ चर $flag या तो true, या false के बराबर है
?>

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

php<?php
  $arr = [1, 2, 3, 4, 5];
  $flag = false;
  
  foreach ($arr as $elem) {
    if ($elem === 3) {
      $flag = true;
      break;
    }
  }
  
  if ($flag === true) {
    echo '+++';
  } else {
    echo '---';
  }
?>
Задание 1

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

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
?>

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

Задание 2

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