جزوه آموزشی ساختار شرطی 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. عددی از 1 تا 7 گرفته و نام روز هفته را چاپ کند، اگر عدد خارج از محدوده بود خطا بدهد.
  2. روز را بر اساس عدد داده‌شده بررسی کند و اگر پنج‌شنبه یا جمعه بود، بنویسد "تعطیل".
  3. برنامه‌ای بنویسید که اگر عدد کمتر از 1 یا بیشتر از 7 بود، پیام "روز معتبر نیست" چاپ کند.
  4. با استفاده از عملگر && بررسی کنید اگر عدد معتبر بود، نام روز را چاپ کند.
  5. بررسی کنید اگر روز برابر 6 یا 7 بود، بنویسید "تعطیل"، در غیر این صورت "روز کاری".
  6. ترکیبی از if و switch بنویسید تا فقط در صورتی که عدد معتبر بود، switch اجرا شود.
  7. بررسی کنید اگر روز بین 1 تا 5 بود بنویسید "مدرسه باز است"، اگر 6 یا 7 بود بنویسید "تعطیل".
  8. برنامه‌ای بنویسید که کاربر عددی بدهد و نوع روز را (شروع هفته، میانه، پایان هفته) چاپ کند.
  9. اگر عدد خارج از محدوده باشد، با استفاده از عملگر || پیام هشدار نمایش دهد.
  10. برنامه‌ای بنویسید که روز هفته را با توجه به عدد نمایش دهد و در کنار آن نوع روز (کاری یا تعطیل) را مشخص کند.

✨ نتیجه‌گیری: با ترکیب switch و عملگرهای منطقی && و || می‌توان تصمیم‌گیری‌های چندحالتی را همراه با بررسی محدوده ورودی به شکلی دقیق‌تر انجام داد.