آموزش مقدماتی زبان go | شرطی‌ها و عبارات شرطی

استفاده از شرطی‌ها در Go (if، else if، else)

شرطی‌ها به برنامه اجازه می‌دهند که بر اساس یک تصمیم، مسیر اجرای کد را تغییر دهد. به زبان ساده، با شرطی‌ها به برنامه می‌گوییم: «اگر این موضوع درست بود، این کار را انجام بده؛ در غیر این صورت، کار دیگری انجام بده.» در زبان Go، ابزار اصلی برای این کار سه کلمه کلیدی if، else if و else هستند.

ساده‌ترین شکل شرطی، فقط با if نوشته می‌شود. ساختار آن به این صورت است:

if شرط {
    // کدی که در صورت درست بودن شرط اجرا می‌شود
}

مثال:

package main

import "fmt"

func main() {
    age := 20

    if age >= 18 {
        fmt.Println("شما بزرگسال هستید")
    }
}

در این مثال، چون مقدار age برابر ۲۰ است و شرط age >= 18 درست می‌باشد، پیام داخل بلوک if چاپ می‌شود. اگر شرط نادرست بود، برنامه از بلوک if عبور می‌کرد و هیچ چیزی چاپ نمی‌شد.

گاهی لازم است وقتی شرط اول درست نبود، شرط دومی بررسی شود. برای این کار از else if استفاده می‌کنیم. می‌توانیم چند else if پشت سر هم بیاوریم تا چند حالت مختلف را بررسی کنیم:

package main

import "fmt"

func main() {
    score := 75

    if score >= 90 {
        fmt.Println("عالی")
    } else if score >= 70 {
        fmt.Println("خوب")
    } else if score >= 50 {
        fmt.Println("قابل قبول")
    }
}

در اینجا برنامه ابتدا بررسی می‌کند که آیا score >= 90 درست است. چون نادرست است، به else if بعدی می‌رود. شرط score >= 70 درست است، پس پیام «خوب» چاپ می‌شود و بقیه شرط‌ها بررسی نمی‌شوند. نکته مهم این است که به محض درست بودن یکی از شرط‌ها، بقیه شرط‌ها نادیده گرفته می‌شوند.

اگر بخواهیم حالتی را هم برای وقتی که هیچ‌کدام از شرط‌ها درست نبودند در نظر بگیریم، از else استفاده می‌کنیم. else هیچ شرطی ندارد و فقط زمانی اجرا می‌شود که تمام شرط‌های قبلی نادرست بوده باشند:

package main

import "fmt"

func main() {
    score := 40

    if score >= 90 {
        fmt.Println("عالی")
    } else if score >= 70 {
        fmt.Println("خوب")
    } else if score >= 50 {
        fmt.Println("قابل قبول")
    } else {
        fmt.Println("نیاز به تلاش بیشتر")
    }
}

در این مثال چون هیچ‌کدام از شرط‌ها درست نیستند، بلوک else اجرا می‌شود و پیام «نیاز به تلاش بیشتر» چاپ می‌شود.

در Go یک ویژگی خاص و مفید وجود دارد: می‌توانیم قبل از شرط، یک دستور کوتاه بنویسیم و نتیجه آن را در شرط استفاده کنیم. این دستور با یک سمی‌کالن (;) از شرط جدا می‌شود:

package main

import "fmt"

func main() {
    if result := 10 * 2; result > 15 {
        fmt.Println("نتیجه بزرگ‌تر از ۱۵ است:", result)
    }
}

در اینجا ابتدا result محاسبه می‌شود (برابر ۲۰)، سپس شرط result > 15 بررسی می‌شود. متغیر result فقط در داخل بلوک if و بلوک‌های else مربوط به آن قابل دسترسی است و بیرون از آن وجود ندارد.

چند نکته‌ی مهم که به‌عنوان مبتدی باید به یاد بسپارید:

  • شرط داخل if باید حتماً یک مقدار از نوع bool (یعنی true یا false) باشد. Go برخلاف بعضی زبان‌ها اعداد یا رشته‌ها را به‌عنوان شرط نمی‌پذیرد. مثلاً نوشتن if age { به‌جای if age > 0 { خطا می‌دهد.
  • آکولادها ({ و }) در Go اجباری هستند، حتی اگر داخل بلوک فقط یک خط کد داشته باشید.
  • آکولاد باز باید در همان خط if نوشته شود، نه در خط بعد. این یک قاعده‌ی نحوی در Go است و رعایت نکردن آن باعث خطای کامپایل می‌شود.
  • می‌توانید شرط‌ها را با عملگرهای منطقی && (و) و || (یا) ترکیب کنید. مثلاً if age >= 18 && age <= 60 { یعنی سن بین ۱۸ و ۶۰ سال باشد.
پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3