অন্য ভাষাগুলোর মতো Go-তেও একটি switch স্টেটমেন্ট আছে।
লম্বা if ... else if স্টেটমেন্ট লেখার একটি ছোট উপায় হলো switch স্টেটমেন্ট।
একটি switch বানাতে আমরা প্রথমে 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 স্টেটমেন্ট নিয়ে একটি মজার ব্যাপার হলো, 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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।