Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ 17 यदि प्रारंभकर्ता के साथ बयान

सी ++ 17 मौजूदा अगर स्टेटमेंट के सिंटैक्स को बढ़ा दिया है। अब if स्टेटमेंट के भीतर ही प्रारंभिक स्थिति प्रदान करना संभव है। इस नए सिंटैक्स को "इफ स्टेटमेंट विद इनिशियलाइज़र" कहा जाता है। यह एन्हांसमेंट सामान्य कोड पैटर्न को सरल करता है और उपयोगकर्ताओं को दायरे को तंग रखने में मदद करता है। जो बदले में वेरिएबल लीक को दायरे से बाहर होने से बचाती है।

उदाहरण

मान लीजिए कि हम यह जांचना चाहते हैं कि दी गई संख्या सम है या विषम। C++17 से पहले हमारा कोड इस तरह दिखता था -

#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
   srand(time(NULL));
   int random_num = rand();
   if (random_num % 2 == 0) {
      cout << random_num << " is an even number\n";
   } else {
      cout << random_num << " is an odd number\n";
   }
   return 0;
}

आउटपुट

जब आप उपरोक्त कोड को संकलित और निष्पादित करते हैं तो यह कुछ इस तरह से आउटपुट उत्पन्न करेगा -

1555814729 is an odd number

ऊपर के उदाहरण में, हम देख सकते हैं कि वेरिएबल "random_num" if-else स्कोप के बाहर लीक हो गया है। हम इसे नए "इफ स्टेटमेंट विद इनिशियलाइज़र" सिंटैक्स के साथ आसानी से टाल सकते हैं।

नीचे "इफ स्टेटमेंट विद इनिशियलाइज़र" का सिंटैक्स दिया गया है -

if (init; condition) {
   // Do stuff when Boolean condition is true
} else {
   // Do stuff when Boolean condition is false
}

उदाहरण

आइए अब इस नए if स्टेटमेंट का उपयोग करके इनिशियलाइज़र के साथ समान कोड लिखें -

#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
   srand(time(NULL));
   // C++17 if statement with initializer
   if (int random_num = rand(); random_num % 2 == 0) {
      cout << random_num << " is an even number\n";
   } else {
      cout << random_num << " is an odd number\n";
   }
   return 0;
}

उपरोक्त उदाहरण में, चर "random_num" का दायरा if-else ब्लॉक तक सीमित है। इसलिए इस वेरिएबल को इस ब्लॉक के बाहर एक्सेस नहीं किया जा सकेगा। हैरानी की बात है कि यह वास्तविक आउटपुट को प्रभावित किए बिना वैरिएबल स्कोप को टाइट रखता है।

आउटपुट

जब आप उपरोक्त कोड को संकलित और निष्पादित करते हैं तो यह कुछ इस तरह से आउटपुट उत्पन्न करेगा -

943513352 is an even number

नोट - जैसा कि हम यादृच्छिक संख्या उत्पन्न कर रहे हैं हर बार एक ही मशीन पर भी प्रत्येक रन के लिए आउटपुट अलग-अलग होगा।


  1. मैं जावास्क्रिप्ट में ब्रेक स्टेटमेंट वाले लेबल का उपयोग कैसे कर सकता हूं?

    जावास्क्रिप्ट 1.2 से शुरू होकर, प्रवाह को अधिक सटीक रूप से नियंत्रित करने के लिए ब्रेक स्टेटमेंट के साथ एक लेबल का उपयोग किया जा सकता है। एक लेबल केवल एक पहचानकर्ता होता है जिसके बाद एक कोलन (:) होता है जो किसी कथन या कोड के ब्लॉक पर लागू होता है। उदाहरण ब्रेक स्टेटमेंट वाले लेबल के साथ काम करने का

  1. जावास्क्रिप्ट में अंतिम कथन को उदाहरण सहित समझाइए।

    आखिरकार स्टेटमेंट हमेशा ट्राई एंड कैच ब्लॉक के बाद निष्पादित होता है, भले ही कोई त्रुटि हुई हो या नहीं। जावास्क्रिप्ट में अंतिम विवरण के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="vi

  1. कथन के साथ जावास्क्रिप्ट के क्या उपयोग हैं?

    WITH स्टेटमेंट का उपयोग दी गई संपत्ति के लिए डिफ़ॉल्ट ऑब्जेक्ट को निर्दिष्ट करने के लिए किया जाता है और हमें लंबे ऑब्जेक्ट संदर्भों को लिखने से रोकने की अनुमति देता है। यह दिए गए ऑब्जेक्ट को स्कोप चेन के हेड में जोड़ता है। जावास्क्रिप्ट में स्टेटमेंट के साथ कोड निम्नलिखित है - उदाहरण दस्तावेज़ बॉडी