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

C++17 इनिशियलाइज़र के साथ if स्टेटमेंट


C++17 ने मौजूदा if स्टेटमेंट के सिंटैक्स को विस्तारित किया है। अब if स्टेटमेंट के भीतर प्रारंभिक शर्त प्रदान करना संभव है। इस नए सिंटैक्स को "इनिशियलाइज़र के साथ 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 स्टेटमेंट" सिंटैक्स से इसे आसानी से बचा सकते हैं।

नीचे "इनिशियलाइज़र के साथ if स्टेटमेंट" का सिंटैक्स है -

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 स्टेटमेंट
    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. जावास्क्रिप्ट में फाइनली स्टेटमेंट को उदाहरण सहित समझाएं जावास्क्रिप्ट में फाइनली स्टेटमेंट को उदाहरण सहित समझाएं

    परिचय finally स्टेटमेंट try और catch ब्लॉक के बाद हमेशा निष्पादित होता है, चाहे एरर हुआ हो या नहीं। यह क्लीनअप ऑपरेशन्स (फ़ाइल बंद करना, कनेक्शन रिलीज़ करना, लोडिंग इंडिकेटर छुपाना) के लिए आदर्श है। उदाहरण निम्न कोड जावास्क्रिप्ट में फाइनली स्टेटमेंट के लिए है: <!DOCTYPE html> <html lang

  1. JavaScript WITH स्टेटमेंट के उपयोग क्या हैं? JavaScript WITH स्टेटमेंट के उपयोग क्या हैं?

    WITH स्टेटमेंट का उपयोग दिए गए प्रॉपर्टी के लिए डिफॉल्ट ऑब्जेक्ट निर्दिष्ट करने के लिए किया जाता है और यह हमें लंबे ऑब्जेक्ट रेफरेंस लिखने से बचाता है। यह दिए गए ऑब्जेक्ट को स्कोप चेन के शीर्ष पर जोड़ देता है।JavaScript में WITH स्टेटमेंट का कोड:उदाहरण<!DOCTYPE html> <html lang="hi&quo