बाकी भाषाओं की तरह Go में भी switch स्टेटमेंट होता है।
स्विच स्टेटमेंट लंबे if ... else if स्टेटमेंट लिखने का छोटा तरीका है।
स्विच बनाने के लिए हम सबसे पहले switch कीवर्ड लिखते हैं और उसके बाद एक वैल्यू या एक्सप्रेशन देते हैं।
इसके बाद हम हर शर्त को case कीवर्ड से घोषित करते हैं।
हम एक default केस भी घोषित कर सकते हैं, जो तब चलता है जब पिछली case शर्तों में से कोई भी मेल नहीं खाती:
operatingSystem := "windows"
switch operatingSystem {
case "windows":
// do something if the operating system is windows
case "linux":
// do something if the operating system is linux
case "macos":
// do something if the operating system is macos
default:
// do something if the operating system is none of the above
}
स्विच स्टेटमेंट की एक दिलचस्प बात यह है कि switch कीवर्ड के बाद लिखी वैल्यू छोड़ी जा सकती है, और तब हम हर case के लिए बूलियन शर्तें रख सकते हैं:
age := 21
switch {
case age > 20 && age < 30:
// do something if age is between 20 and 30
case age == 10:
// do something if age is equal to 10
default:
// do something else for every other case
}
इस अभ्यास में हम Blackjack खेल की पहली बारी का अनुकरण करेंगे।
आपको दो कार्ड मिलेंगे और आप डीलर का खुला हुआ कार्ड देख पाएँगे। सभी कार्ड एक स्ट्रिंग से दर्शाए जाते हैं, जैसे "ace", "king", "three", "two", आदि। हर कार्ड की वैल्यू इस प्रकार है:
| कार्ड | वैल्यू | कार्ड | वैल्यू |
|---|---|---|---|
| ace | 11 | eight | 8 |
| two | 2 | nine | 9 |
| three | 3 | ten | 10 |
| four | 4 | jack | 10 |
| five | 5 | queen | 10 |
| six | 6 | king | 10 |
| seven | 7 | अन्य | 0 |
ध्यान दें: आम तौर पर ace की वैल्यू 1 या 11 हो सकती है, लेकिन आसानी के लिए हम मान लेंगे कि इसकी वैल्यू सिर्फ 11 ही हो सकती है।
आपके दो कार्ड और डीलर के कार्ड के आधार पर खेल की पहली बारी के लिए एक रणनीति होती है, जिसमें आपके पास ये विकल्प होते हैं:
हालाँकि यह रणनीति अभी सबसे अच्छी नहीं है, फिर भी आप उस रणनीति का पालन करेंगे जो आपके दोस्त Alex तैयार कर रहे हैं। वह इस प्रकार है:
किसी कार्ड की संख्यात्मक वैल्यू निकालने वाला एक फंक्शन बनाइए:
value := ParseCard("ace")
fmt.Println(value)
// Output: 11
ऊपर बताए गए निर्णय लॉजिक को लागू करने वाला एक फंक्शन लिखिए:
func FirstTurn(card1, card2, dealerCard string) string
अपेक्षित नतीजों के कुछ उदाहरण यहाँ हैं:
FirstTurn("ace", "ace", "jack") == "P"
FirstTurn("ace", "king", "ace") == "S"
FirstTurn("five", "queen", "ace") == "H"
Exercism पर साइन अप कीजिए और Go को 35 कॉन्सेप्ट167 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।