تصمیم گیری برای انجام یک یا آن اقدام، یک عنصر اساسی در برنامه نویسی است. کشف کنید که چگونه عبارات شرطی این امکان را در Go ممکن میسازد.
عبارات شرطی به شما امکان می دهد تصمیمات را بر اساس منطقی که درست یا نادرست ارزیابی می کند، اجرا کنید. برخی از نمونههای عبارات شرطی عبارتند از: if، if…else، if…else if.. else، و دستورات switch-case. Go از این شرطی ها با یک نحو آشنا و ساده پشتیبانی می کند.
شروع با Golang
برای دنبال کردن این آموزش، اگر قبلاً این کار را نکرده اید، Go را در محیط محلی خود نصب کنید. همچنین می توانید قطعه کدهای موجود در این مقاله را با استفاده از زمین بازی Go تست کنید.
اگر بیانیه
دستور if یک بلوک کد را تنها در صورتی اجرا می کند که یک شرط خاص برآورده شود. در اینجا نحو است:
if condition {
// Block of code
}
در اینجا مثالی وجود دارد که اگر مقدار متغیر علامت ها بیش از 50 باشد، “Pass” را چاپ می کند:
marks := 60
if marks > 50 {
fmt.Println("Pass")
}
همچنین می توانید متغیر marks را در دستور if به صورت زیر اعلام کنید:
if marks := 60; marks > 50 {
fmt.Println("Pass")
}
هنگام ترکیب شرایط، Go به شما امکان می دهد از عملگرهای منطقی آشنا از زبان های دیگر مانند AND(&&)، OR (||) و NOT(!) استفاده کنید.
عملگر AND فقط در صورتی true را برمی گرداند که مقدار سمت راست و چپ آن درست باشد:
sunny := true
noClass := true
if sunny && noClass {
fmt.Println("Go to the beach")
}
اگر یکی از مقادیر سمت راست یا چپ درست باشد عملگر OR true را برمی گرداند:
today := "Sunday"
if today == "Sunday" || today == "Saturday" {
fmt.Println("Sleep in")
}
عملگر NOT فقط در صورتی مقدار true را برمی گرداند:
marks := true
if !marks {
fmt.Println("No marks available!")
}
اگر… بیانیه دیگری
دستور if…else کد مربوطه را بسته به اینکه آیا شرط برآورده شده است اجرا می کند.
if condition {
// Executes if condition is met
} else {
// Executes if condition is not met
}
در مثال زیر، اگر مقدار کل امتیازات بالای 50 باشد، برنامه «Pass» را چاپ میکند و اگر در زیر باشد «Fail» را چاپ میکند.
marks := 60
if marks > 50 {
fmt.Println("Pass")
} else {
fmt.Println("Fail")
}
اگر…اگر…دیگر بیانیه
دستور if…else if…else به شما امکان می دهد چندین دستور if را ترکیب کنید.
if condition1 {
// Executess if condition1 is met
} else if condition2 {
// Executess if condition2 is met
} else {
// Executes if neither condition1 nor condition2 is met
}
با گسترش مثال if…else، برنامه زیر همچنین بررسی میکند که آیا علامتها بالاتر از 80 هستند یا خیر و در این صورت، «Passed with distinction» را چاپ میکند:
marks := 60
if marks > 80 {
fmt.Println("Passed with distinction")
} else if marks > 50 {
fmt.Println("Pass")
} else {
fmt.Println("Fail")
}
سوئیچ بیانیه
دستور switch یک دستور شرطی است که به شما امکان می دهد اقدامات مختلفی را بر اساس مقدار یک عبارت اجرا کنید. شما می توانید مقادیر قابل توجهی را به عنوان “موارد” شناسایی کنید و بر اساس آنها عمل کنید.
دستور switch در Go کمی با سایر زبان های برنامه نویسی مانند C#، JavaScript و Python متفاوت است. این به این دلیل است که فقط بلوک کد را در مورد met اجرا می کند. کلمه کلیدی break، مورد نیاز زبان های دیگر، در اینجا ضروری نیست:
switch expression {
case expr1:
// Block of code
case expr2:
// Block of code
default:
// Block of code
}
کد بالا عبارت را بعد از کلیدواژه سوئیچ ارزیابی می کند، سپس آن را با هر مقدار مورد مقایسه می کند. اگر مقداری مطابقت داشته باشد، بلوک زیر اجرا می شود. شما می توانید هر تعداد مورد نیاز داشته باشید، اما همه آنها باید منحصر به فرد باشند. بلوک پیشفرض اگر مطابقت نداشته باشد اجرا میشود.
مثال زیر از دستور switch برای نمایش یک مورد “todo” برای هر روز هفته استفاده می کند.
package main
import (
"fmt"
"time"
)
func main() {
today := time.Now().Weekday()
switch today {
case 0:
fmt.Println("Relax.")
case 1:
fmt.Println("Clean the house.")
case 2:
fmt.Println("Visit the dentist.")
case 3:
fmt.Println("Weed the garden.")
case 4:
fmt.Println("Send gifts")
case 5:
fmt.Println("Do laundry.")
case 6:
fmt.Println("Write a blog post.")
default:
fmt.Println("No task scheduled.")
}
}
در اینجا، بسته زمانی Go، روز هفته را به عنوان یک عدد صحیح ارائه میکند و بسته به آن مقدار، دستور switch وظیفه خاصی را چاپ میکند.
زمان استفاده از بیانیه های شرطی
عبارات شرطی به شما کمک می کند تا یک جریان تصمیم گیری در برنامه خود ایجاد کنید. مانند بسیاری از زبان های دیگر، Go از چندین نوع دستور شرطی پشتیبانی می کند. می توانید از آنها برای ساده سازی برنامه خود و اطمینان از صحت عملکرد منطقی آن استفاده کنید.
زمانی که جریان برنامه شما به مقدار خاصی مانند ورودی کاربر بستگی دارد از دستورات شرطی استفاده کنید.