C++ में आप तुलना ऑपरेटरों की मदद से वैल्यू की तुलना कर सकते हैं।
| तुलना | ऑपरेटर |
|---|---|
| बराबर | == |
| बराबर नहीं | != |
| कम | < |
| कम या बराबर | <= |
| अधिक | > |
| अधिक या बराबर | >= |
इन तुलनाओं का परिणाम हमेशा एक बूलियन वैल्यू होता है:
int a{3};
bool eq1 = a != 4; // true
bool eq2 = a > 5; // false
ऑपरेटर == और != क्रमशः जाँचते हैं कि कोई वैल्यू दूसरी वैल्यू के बराबर है या नहीं। यहाँ कुछ आम उदाहरण दिए गए हैं:
bool eq3 = 2 == 3; // false, integer comparison
bool eq4 = 2.1 != 2.2; // true, float comparison
bool eq5 = "hello" == "hello"; // true, string comparison
बाकी ऑपरेटर जाँचते हैं कि कोई वैल्यू दूसरी वैल्यू से अधिक (>) है, अधिक या बराबर (>=) है, कम (<) है, या कम या बराबर (<=) है।
इस तरह की तुलना संख्याओं और स्ट्रिंग, दोनों के लिए उपलब्ध है।
स्ट्रिंग की तुलना करते समय डिक्शनरी क्रम (जिसे लेक्सिकोग्राफिक क्रम भी कहते हैं) का पालन किया जाता है।
bool eq6 = 2 > 3; // false, integer comparison
bool eq7 = 1.2 < 1.3; // true, float comparison
bool eq8 = "Hello" < "World"; // true, string comparison
if स्टेटमेंटC++ में शर्तें दूसरी भाषाओं की शर्तों जैसी ही होती हैं।
किसी भी शर्त वाले ऑपरेशन का मूल टाइप bool होता है, जिसकी वैल्यू true या false हो सकती है।
शर्तों का उपयोग अक्सर कोड के प्रवाह को नियंत्रित करने और अलग-अलग शर्तें जाँचने के लिए किया जाता है।
if स्टेटमेंट का उपयोग किया जा सकता है, जो अपना कोड तब चलाता है जब उसकी शर्त true हो, ऐसे:
std::string value{"val"};
if (value == "val") {
return "was val";
}
जिन मामलों में एक से अधिक स्थितियाँ होती हैं, वहाँ else if और else स्टेटमेंट की मदद से कई if स्टेटमेंट एक साथ जोड़े जा सकते हैं।
int number{33};
if (number > 0) {
return "positive";
} else if (number < 0) {
return "negative";
} else {
return "zero";
}
C++17 से if स्टेटमेंट में एक छोटा इनिशलाइज़ेशन स्टेटमेंट भी शामिल किया जा सकता है, जिसका उपयोग if स्टेटमेंट के लिए एक या अधिक वेरिएबल शुरू करने में किया जा सकता है।
उदाहरण:
int num{7};
if (int v{2 * num}; v > 10) {
return v;
} else {
return num;
}
// => 14
ध्यान दें: इनिशलाइज़ेशन में बनाए गए किसी भी वेरिएबल का उपयोग
ifस्टेटमेंट खत्म होने के बाद नहीं किया जा सकता।
इस अभ्यास में आप कुछ कोड लिखेंगे, जो आपको वाहन खरीदने की तैयारी में मदद करेगा।
आपके सामने तीन काम हैं: पहला, यह तय करना कि आपको लाइसेंस की ज़रूरत है या नहीं; दूसरा, दो वाहनों में से एक चुनने में आपकी मदद करना; और तीसरा, पुराने वाहन की स्वीकार्य कीमत का अनुमान लगाना।
कुछ वाहनों को चलाने के लिए ड्राइविंग लाइसेंस की ज़रूरत होती है।
मान लीजिए कि सिर्फ़ "car" और "truck" के लिए लाइसेंस ज़रूरी है, बाकी सब बिना लाइसेंस के चलाए जा सकते हैं।
needs_license(kind) फंक्शन बनाइए। यह वाहन का प्रकार एक स्ट्रिंग के रूप में लेता है और एक बूलियन लौटाता है, जो बताता है कि उस प्रकार के वाहन के लिए आपको लाइसेंस चाहिए या नहीं।
needs_license("car")
// => true
needs_license("bike")
// => false
needs_license("truck")
// => true
आप उपलब्ध वाहनों के अपने विकल्पों पर विचार करते हैं।
आप इन्हें घटाकर दो विकल्पों तक ले आते हैं, लेकिन अंतिम फैसला लेने में आपको मदद चाहिए।
इसके लिए choose_vehicle(option1, option2) फंक्शन बनाइए, जो दो वाहनों को आर्गुमेंट के रूप में लेता है और एक फैसला लौटाता है, जिसमें शब्दकोशीय क्रम में पहले आने वाला विकल्प शामिल होता है।
choose_vehicle("Wuling Hongguang", "Toyota Corolla")
// => "Toyota Corolla is clearly the better choice."
choose_vehicle("Volkswagen Beetle", "Volkswagen Golf")
// => "Volkswagen Beetle is clearly the better choice."
लौटाई गई स्ट्रिंग इस पैटर्न पर होनी चाहिए: "<CHOSEN_VEHICLE> is clearly the better choice.", जहाँ <CHOSEN_VEHICLE> पास किए गए आर्गुमेंट में से चुना गया विकल्प है।
अब जब आपने फैसला कर लिया है, तो आप यह सुनिश्चित करना चाहते हैं कि डीलरशिप पर आपको उचित कीमत मिले। चूँकि आप पुराना वाहन खरीदना चाहते हैं, इसलिए कीमत इस बात पर निर्भर करती है कि वाहन कितना पुराना है। मोटे अनुमान के लिए मान लीजिए कि अगर वाहन 3 साल से कम पुराना है, तो उसकी कीमत उस मूल कीमत का 80% होती है जो बिल्कुल नई हालत में थी। अगर वह कम से कम 10 साल पुराना है, तो उसकी कीमत 50% होती है। अगर वाहन कम से कम 3 साल पुराना है लेकिन 10 साल से कम, तो उसकी कीमत मूल कीमत का 70% होती है।
calculate_resell_price(original_price, age) फंक्शन बनाइए, जो if, else if और else की मदद से यह तर्क लागू करता है (अगर आप अभ्यास करना चाहें तो दूसरे तरीके भी हैं)।
यह मूल कीमत और वाहन की उम्र आर्गुमेंट के रूप में लेता है और डीलरशिप पर अनुमानित कीमत लौटाता है।
calculate_resell_price(1000, 1)
// => 800
calculate_resell_price(1000, 5)
// => 700
calculate_resell_price(1000.0, 15)
// => 500
ध्यान दें: रिटर्न वैल्यू
doubleटाइप की होती है।
Exercism पर साइन अप कीजिए और C++ को 19 कॉन्सेप्ट100 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।