1 শর্তমূলক বিবৃতির সংক্ষিপ্ত পরিচিতি

শর্তমূলক বিবৃতিগুলি, প্রোগ্রামিংয়ে প্রোগ্রামের লজিক্যাল ফ্লোকে নিয়ন্ত্রণ করার জন্য গুরুত্বপূর্ণ সরঞ্জাম। Golang এ, শর্তমূলক বিবৃতিগুলি অন্য প্রোগ্রামিং ভাষাগুলির মতো, তবে তাদের নিজস্ব বৈশিষ্ট্য রয়েছে। এটি আমাদেরকে দেওয়ার সাথে সাথে সিদ্ধান্ত নিতে সাহায্য করে যে কোডটি সত্য বা মিথ্যা শর্তের উপর বিচার করা হবে, যাতে কোডের লচ্ছতা এবং রক্ষণযোগ্যতা বাড়াতে পারে।

2 if বিবৃতি

2.1 if বিবৃতির মৌলিক ব্যবহার

if বিবৃতি হলো গো ভাষার সবচেয়ে মৌলিক শর্তমূলক বিবৃতি। এর সিনট্যাক্স হলঃ

if শর্ত {
    // শর্ত সত্য হলে কোডটি নিয়োএর জন্য
}

নিচে একটি সহজ উদাহরণ দেওয়া হলঃ

package main

import "fmt"

func main() {
    x := 10
    if x > 5 {
        fmt.Println("x পাঁচের চেয়ে বড়")
    }
}

এই কোডটি চেক করবে যদি x 5 থেকে বড় হয়, এবং যদি হয়, তবে এটি মুদ্রণ অপারেশন করবে।

2.2 শর্তমূলক অভিব্যক্তিগুলি

শর্তমূলক অভিব্যক্তিগুলি সম্পর্কিত অপারেটর (যেমন ==, !=, <, >, <=, >=) এবং লজিক্যাল অপারেটর (যেমন && (AND), || (OR), ! (NOT)) এর শ্রেণী।

উদাহরণঃ নির্দিষ্ট একটি রেঞ্জের মধ্যে ভেরিয়েবলটি চেক করতে:

y := 20
if y >= 10 && y <= 30 {
    fmt.Println("y ১০ এবং ৩০ এর মধ্যে")
}

উপরোক্ত শর্তমূলক অভিব্যক্তিটি লজিক্যাল অপারেটর && ব্যবহার করে নিশ্চিত করে, y এর মান 10 এবং 30 এর মধ্যে আছে।

2.3 if...else এবং else if গঠন

যদি if শর্তটি পূরণ না হয়, তবে আমরা else ব্যবহার করে অন্যান্য কোড ব্লক ের কাজে লাগাতে পারি। else if আমরা একাধিক শর্ত চেক করতে পারি। এখানে একটি উদাহরণ দেওয়া হলঃ

score := 88

if score >= 90 {
    fmt.Println("অসাধারণ")
} else if score >= 80 {
    fmt.Println("ভাল")
} else if score >= 70 {
    fmt.Println("গড়")
} else {
    fmt.Println("গড়ের নিচে")
}

এই কোডটি স্কোর এর মান অনুযায়ী বিভিন্ন মূল্যায়ন মুদ্রণ করবে।

3 switch বিবৃতি

3.1 switch এর মৌলিক প্রণালী

switch বিবৃতি হলো একটি আরও সংক্ষেপিত শর্তমূলক বিভাজন বিবৃতি, সবচেয়ে বেশি মান নির্ধারণ করা দরকার পরে যেতে সমৃদ্ধ। switch বিবৃতির মৌলিক সিনট্যাক্স হলঃ

switch এক্সপ্রেশন {
case মান1:
    // ম্যাচিং মান1 হওয়া সময় কোড ব্লক নিয়োাবো
case মান2:
    // ম্যাচিং মান2 হওয়া সময় কোড ব্লক নিয়োাবো
default:
    // পূর্বনির্ধারিত অপারেশন চালু করো যাবে
}

যদি এক্সপ্রেশন মান মান1 সিনট্যাক্সের পেছনের মানের সাথে ম্যাচ মিলে, তবে প্রস্তুত কোড ব্লকটি বিচার করা হবে।

3.2 switch Fallthrough

Go এর switch বিবৃতিতে, প্রতিটি ব্রাঞ্চ ডিফল্ট ভিত্তিতে পরবর্তী মানের কেসে পরে উপরে পড়ে যাবে না, যদি fallthrough কীওয়ার্ড ব্যবহার না করা হয়।

switch num {
case 1:
    fmt.Println("এক")
    fallthrough
case 2:
    fmt.Println("দুই")
default:
    fmt.Println("না একটু না দুই")
}

উপরোক্ত কোডে, যদি num 1 হয়, যদিও এটি case 1 ম্যাচ করে, এর পরে fallthrough কীওয়ার্ডের উপস্থিতির কারণে, প্রোগ্রামটি case 2 এর কোডটি চালিয়ে "দুই" মুদ্রণ করবে।

3.3 ধরন বিশিষ্ট এবং কাস্টম বিভাজন

switch বিবৃতিটি প্রায়ই একটি ধরন ভিত্তিতে বিভাজন সমর্থন করে, যা ধরন বিভাজন বলা হয়। ছাড়াও, আমরা প্রয়োজন অনুযায়ী আরও কঠিন কাস্টম বিভাজন শর্ত তৈরি করতে পারি।

ধরন ভিত্তিতে বিভাজন এর উদাহরণ:

var i interface{} = 1

switch i.(type) {
case int:
    fmt.Println("i একটি পূর্ণসংখ্যা")
case float64:
    fmt.Println("i একটি float64")
default:
    fmt.Println("i আরো একটি প্রকার")
}

প্রযোজন অনুযায়ী আরও কঠিন কাস্টম বিভাজনের শর্তগুলি লিখে বিকল্প শর্তগুলি পালন করার জন্য ব্যবহার করা যেতে পারে।

4 ব্যবহারযোগ্য অনুশীলন

এই বিভাগে, আমরা নিশ্চিত উদাহরণগুলিতে Golang এ শর্তমূলক বিবৃতিগুলি ব্যবহারের মাধ্যমে বাস্তবে সমস্যাগুলি সমাধানে আরও দক্ষ হতে চেষ্টা করব। প্রায়গ প্রোগ্রামিং চ্যালেঞ্জের মাধ্যমে, আপনি বিশেষ করে if এবং switch বিবৃতি ব্যবহার করে বাস্তব বিশ্বের সমস্যাগুলি সমাধানে দক্ষ হয়োো উপার্জন করবেন।

গ্রেড ক্যালকুলেটর

আসুন একটি সহজ গ্রেড ক্যালকুলেটর লেখা যাক। এই প্রোগ্রামটি ব্যবহারকারী দ্বারা প্রবেশ করানো স্কোরের উপর ভিত্তি করে অনুসারিত গ্রেড নির্ধারণ এবং আউটপুট করবে। গ্রেডিং মানদণ্ড নিম্নরূপ:

  • A স্কোর 90 এবং অধিকের জন্য
  • B স্কোর 80 থেকে 89 পর্যন্ত
  • C স্কোর 70 থেকে 79 পর্যন্ত
  • D স্কোর 60 থেকে 69 পর্যন্ত
  • F স্কোর 60 এর নিচে

আমরা এই কার্যকারিতা লাগানোর জন্য বা if বা switch স্টেটমেন্ট ব্যবহার করতে পারি। প্রথমে, আসলে আমরা if স্টেটমেন্ট ব্যবহার করে একটি উদাহরণ দেখা যাক:

package main

import (
	"fmt"
)

func main() {
	var score int
	fmt.Print("দয়া করে স্কোর প্রবেশ করুন: ")
	fmt.Scan(&score)

	if score >= 90 {
		fmt.Println("গ্রেড: A")
	} else if score >= 80 {
		fmt.Println("গ্রেড: B")
	} else if score >= 70 {
		fmt.Println("গ্রেড: C")
	} else if score >= 60 {
		fmt.Println("গ্রেড: D")
	} else {
		fmt.Println("গ্রেড: F")
	}
}

এই কোডে, আমরা প্রথমে score ভেরিয়েবল ঘোষণা করি যাতে ব্যবহারকারীর ইনপুট স্কোর সংরক্ষণ করা যায়। আমরা fmt.Scan ফাংশন ব্যবহার করে ব্যবহারকারীর ইনপুট ধারণ করি। তারপরে, আমরা এই স্কোরের জন্য সংশ্লিষ্ট গ্রেড নির্ধারণ করতে বিবেচনা করতে বিভিন্ন if এবং else if স্টেটমেন্ট ব্যবহার করি এবং fmt.Println ফাংশন ব্যবহার করে গ্রেড আউটপুট করি।

পরবর্তীতে, আসুন একটি switch স্টেটমেন্ট ব্যবহার করে একটি উদাহরণ দেখে যাক:

package main

import (
	"fmt"
)

func main() {
	var score int
	fmt.Print("দয়া করে স্কোর প্রবেশ করুন: ")
	fmt.Scan(&score)

	switch {
	case score >= 90:
		fmt.Println("গ্রেড: A")
	case score >= 80:
		fmt.Println("গ্রেড: B")
	case score >= 70:
		fmt.Println("গ্রেড: C")
	case score >= 60:
		fmt.Println("গ্রেড: D")
	default:
		fmt.Println("গ্রেড: F")
	}
}

switch স্টেটমেন্ট ব্যবহার করে উদাহরণে, কোড পরিস্কার এবং সংক্ষেপনাত্মক। আমাদের কয়েকটি অব্যাহত if এবং else if স্টেটমেন্ট ব্যবহার করতে হয় না; স্থানান্তরিত লক্ষ্য করা উচিত না, পূর্ববর্তী case এর শর্ত যা মিলছে না, সে স্বয়ংক্রিয়ভাবে পরবর্তী case এর প্রতিটি শর্তে চলে যাবে যা প্রতিটি case করা এর পরিস্থিতি অথবা default কেস প্রাপ্ত হয় তা ছাপবে।

এখন যখন আপনি শর্তমূলক বিচারের জন্য if এবং switch ব্যবহার করা শিখেছেন, আপনি নিজের প্রোগ্রাম লিখার আবেদন এবং বিস্তারিত বুঝার জন্য অনুশীলন করতে চেষ্টা করুন।

পরবর্তী অনুভাগে, আমরা আরও ব্যবহারিক সমস্যা পরিচিত করার জন্য আপনার শর্তমূলক বিবেক প্রকাশ করার সাহায্য করতে ধারণা করছি।

দয়া করে মনোযোগ দিন যে, উপরোক্ত কোডটি অনুশীলনের উদ্দেশ্যে। ব্যবহারের ক্ষেত্রে ব্যবহারকারী সাম্প্রদায়িকতা আর ত্রুটি নিরোধকরণ ইত্যাদি ধরনের পরিস্থিতি বিবেচনা করা উচিত যাতে এটি আরও দৃঢ়তাপূর্বক হতে পারে।