جزوه آموزشی ساختار شرطی switch در PHP
موضوع: ساختار شرطی
switchدر زبان برنامهنویسی PHP
1. مفهوم ساختار switch
دستور switch یکی از ساختارهای شرطی در PHP است که زمانی استفاده میشود که بخواهیم مقدار یک متغیر را با چند مقدار مختلف مقایسه کنیم.
به جای استفاده از چندین if و elseif پشت سر هم، میتوانیم از switch استفاده کنیم تا کد سادهتر و خواناتر شود.
2. ساختار کلی دستور switch
switch (متغیر) {
case مقدار1:
// دستورات در صورت برابر بودن با مقدار1
break;
case مقدار2:
// دستورات در صورت برابر بودن با مقدار2
break;
default:
// در صورتی که هیچکدام از caseها برابر نباشند
}
نکات:
- کلیدواژه
breakباعث میشود که پس از اجرای یک مورد، از switch خارج شود. - اگر
breakرا ننویسیم، اجرای برنامه به case بعدی نیز ادامه پیدا میکند (به این حالت fall through گفته میشود). defaultمانند بخشelseدر دستور if است.
3. مثال ساده: روزهای هفته
$dayNumber = 3; // فرض کنید کاربر عددی بین 1 تا 7 وارد میکند
if ($dayNumber >= 1 && $dayNumber <= 7) {
switch ($dayNumber) {
case 1:
echo "شنبه";
break;
case 2:
echo "یکشنبه";
break;
case 3:
echo "دوشنبه";
break;
case 4:
echo "سهشنبه";
break;
case 5:
echo "چهارشنبه";
break;
case 6:
echo "پنجشنبه";
break;
case 7:
echo "جمعه";
break;
}
} else {
echo "عدد وارد شده باید بین 1 تا 7 باشد!";
}
- یک مثال دیگر برای محاسبه عمل ریاضی بین دو متغیر با استفاده از ساختار شرطی سویچ
$a = 52;
$b = 27;
$op = "@";
$txt = null ;
$result = null ;
switch ($op) {
case "+":
$txt = "حاصل جمع دو متغیر";
$result = $a + $b;
break;
case "-":
$txt = "حاصل تفریق دو متغیر";
$result = $a - $b;
break;
case "/":
$txt = "حاصل تقسیم دو متغیر";
$result = $a / $b;
break;
case "*":
$txt = "حاصل ضرب دو متغیر";
$result = $a * $b;
break;
default:
echo "error";
}
if($txt == null and $result == null){
echo "";
}else{
echo $txt . " : " . $result;
}
6. نکات مهم در switch
- دستور
switchفقط بر اساس مقدار کار میکند، نه شرطهای ترکیبی. - میتوان از
ifقبل ازswitchبرای محدودسازی مقدار ورودی استفاده کرد. - همیشه از
breakاستفاده کنید تا از اجرای ناخواسته caseهای بعدی جلوگیری شود. - بهتر است همیشه
defaultیا شرط کنترلی برای محدوده داشته باشید.
7. تمرینها
- عددی از 1 تا 7 گرفته و نام روز هفته را چاپ کند، اگر عدد خارج از محدوده بود خطا بدهد.
- روز را بر اساس عدد دادهشده بررسی کند و اگر پنجشنبه یا جمعه بود، بنویسد "تعطیل".
- برنامهای بنویسید که اگر عدد کمتر از 1 یا بیشتر از 7 بود، پیام "روز معتبر نیست" چاپ کند.
- با استفاده از عملگر
&&بررسی کنید اگر عدد معتبر بود، نام روز را چاپ کند. - بررسی کنید اگر روز برابر 6 یا 7 بود، بنویسید "تعطیل"، در غیر این صورت "روز کاری".
- ترکیبی از
ifوswitchبنویسید تا فقط در صورتی که عدد معتبر بود،switchاجرا شود. - بررسی کنید اگر روز بین 1 تا 5 بود بنویسید "مدرسه باز است"، اگر 6 یا 7 بود بنویسید "تعطیل".
- برنامهای بنویسید که کاربر عددی بدهد و نوع روز را (شروع هفته، میانه، پایان هفته) چاپ کند.
- اگر عدد خارج از محدوده باشد، با استفاده از عملگر
||پیام هشدار نمایش دهد. - برنامهای بنویسید که روز هفته را با توجه به عدد نمایش دهد و در کنار آن نوع روز (کاری یا تعطیل) را مشخص کند.
✨ نتیجهگیری: با ترکیب
switchو عملگرهای منطقی&&و||میتوان تصمیمگیریهای چندحالتی را همراه با بررسی محدوده ورودی به شکلی دقیقتر انجام داد.