جمع‌بندی، خطاهای رایج، تمرین‌های جامع و ارزشیابی

هدف‌های آموزشی

در پایان این مرحله، دانش‌آموز باید بتواند:

  1. مفاهیم اصلی دستورهای شرطی در PHP را جمع‌بندی کند.
  2. خطاهای رایج در نوشتن شرط‌ها را تشخیص دهد.
  3. برای یک مسئله واقعی، ساختار شرطی مناسب انتخاب کند.
  4. برنامه‌ای کوتاه با استفاده از if، else، elseif یا switch بنویسد.

۱. جمع‌بندی مطالب

در این جزوه، موارد زیر آموزش داده شد:

  1. مفهوم شرط و نتیجه‌های true و false.
  2. عملگرهای مقایسه مانند ==، !=، >، <، >= و <=.
  3. دستور if برای اجرای دستورها در صورت درست بودن شرط.
  4. دستور else برای اجرای دستورها در صورت نادرست بودن شرط.
  5. دستور elseif برای بررسی چند شرط پشت سر هم.
  6. شرط‌های تودرتو برای بررسی شرط داخل شرط.
  7. دستور switch برای مقایسه یک متغیر با چند مقدار مشخص.
  8. نقش break در switch.
  9. عملگر سه‌گانه برای شرط‌های ساده و کوتاه.

نکته مهم: انتخاب ساختار مناسب به نوع مسئله بستگی دارد.

  • برای بررسی بازه‌ها و شرط‌های منطقی، از if و elseif استفاده کنید.
  • برای مقایسه یک متغیر با چند مقدار مشخص، switch مناسب‌تر است.
  • برای شرط‌های کوتاه و ساده، عملگر سه‌گانه می‌تواند خوانایی را بهتر کند.

۲. خطاهای رایج کلی

جدول زیر خطاهای پرتکرار در دستورهای شرطی را نشان می‌دهد.

خطا مثال نادرست شکل درست
استفاده از = به جای == if ($a = 5) if ($a == 5)
فراموش کردن آکولاد if ($a > 5) echo "بزرگ"; if ($a > 5) { echo "بزرگ"; }
فراموش کردن break در switch case 1: echo "یک"; case 1: echo "یک"; break;
گذاشتن شرط برای else else ($a > 5) { } else { }
اشتباه در ترتیب شرط‌ها اول $score >= 10 سپس $score >= 17 اول $score >= 17 سپس $score >= 10
استفاده از switch برای بازه case ($score >= 10): استفاده از if و elseif
حساسیت به حروف بزرگ و کوچک متغیر $Age و $age یکسان فرض شوند نام متغیر را یکسان بنویسید
فراموش کردن نقطه‌ویرگول echo "سلام" echo "سلام";

مطالعه تکمیلی

عملگرهای منطقی && (و)، || (یا) و ! (نفی) نیز در شرط‌ها کاربرد دارند. برای دانش‌آموزان کاردانش، دانستن آن‌ها الزامی نیست، اما یک نمونه ساده نشان می‌دهیم:

<?php
$isLoggedIn = true;
$isAdmin = false;

if ($isLoggedIn && $isAdmin) {
    echo "دسترسی مدیریت";
} else {
    echo "دسترسی محدود";
}
?>

در این مثال، هر دو شرط باید درست باشند تا پیام «دسترسی مدیریت» نمایش داده شود.

۳. تمرین‌های جامع

تمرین‌های زیر برای مرور همه مطالب جزوه طراحی شده‌اند.

تمرین ۱: بررسی عدد

برنامه‌ای بنویسید که متغیر $number را با مقدار دلخواه تعریف کند و موارد زیر را نمایش دهد:

  • اگر عدد بزرگ‌تر از صفر باشد: «مثبت»
  • اگر عدد برابر صفر باشد: «صفر»
  • اگر عدد کوچک‌تر از صفر باشد: «منفی»

تمرین ۲: محاسبه حقوق و پاداش

برنامه‌ای بنویسید که متغیر $salary را تعریف کند. اگر حقوق بزرگ‌تر یا برابر ۲۰۰۰۰۰۰۰ باشد، پاداش ۲۰ درصد، اگر بزرگ‌تر یا برابر ۱۰۰۰۰۰۰۰ باشد، پاداش ۱۰ درصد و در غیر این صورت پاداش صفر درصد محاسبه شود. مبلغ پاداش را نمایش دهید.

تمرین ۳: انتخاب روز کلاس

برنامه‌ای بنویسید که شماره روز هفته را در متغیری ذخیره کند و با switch مشخص کند آیا آن روز کلاس برگزار می‌شود یا نه. برای مثال، روزهای ۱ تا ۵ کلاس برگزار می‌شود و روزهای ۶ و ۷ تعطیل است.

تمرین ۴: بررسی نام کاربری

برنامه‌ای بنویسید که نام کاربری را در متغیری ذخیره کند. اگر نام کاربری "admin" بود پیام «مدیر»، اگر "user" بود پیام «کاربر عادی» و در غیر این صورت پیام «کاربر ناشناس» نمایش دهد. از switch استفاده کنید.

تمرین ۵: عملگر سه‌گانه

با استفاده از عملگر سه‌گانه، برنامه‌ای بنویسید که بررسی کند آیا یک عدد بر ۲ بخش‌پذیر است یا نه. اگر بخش‌پذیر بود پیام «زوج» و در غیر این صورت پیام «فرد» نمایش دهد.

تمرین ۶: پیدا کردن خطا

خطاهای کد زیر را پیدا کنید و شکل درست آن را بنویسید:

<?php
$score = 18;

if ($score >= 10) {
    echo "قبول";
} elseif ($score >= 17) {
    echo "عالی";
}

switch ($score) {
    case $score >= 10:
        echo "شرط";
        break;
}
?>

۴. ارزشیابی

ارزشیابی زیر برای سنجش یادگیری دانش‌آموزان طراحی شده است. هر بخش را می‌توان به صورت جداگانه نمره‌دهی کرد.

بخش الف: پرسش‌های کوتاه

  1. نتیجه بررسی شرط در PHP یکی از دو مقدار ......... یا ......... است.
  2. دستور else چه زمانی اجرا می‌شود؟
  3. وظیفه break در switch چیست؟
  4. تفاوت اصلی switch و elseif را بنویسید.
  5. عملگر سه‌گانه برای چه نوع شرط‌هایی مناسب است؟

بخش ب: تشخیص خطا

کدهای زیر را بررسی کنید و خطا را توضیح دهید:

<?php
$age = 20;
if ($age = 18) {
    echo "برابر است";
}
?>
<?php
$color = "قرمز";

switch ($color) {
    case "قرمز":
        echo "رنگ گرم";
    case "آبی":
        echo "رنگ سرد";
        break;
}
?>

بخش ج: برنامه‌نویسی

  1. برنامه‌ای بنویسید که نمره دانش‌آموز را بررسی کند و بر اساس جدول زیر پیام مناسب نمایش دهد:
    • بزرگ‌تر یا برابر ۱۷: «عالی»
    • بزرگ‌تر یا برابر ۱۴: «خوب»
    • بزرگ‌تر یا برابر ۱۰: «قبول»
    • کمتر از ۱۰: «رد»
  2. برنامه‌ای بنویسید که نوع یک شکل هندسی را با switch تشخیص دهد. مقدار متغیر $shape می‌تواند "circle"، "square" یا "triangle" باشد. برای هر شکل پیام مناسب نمایش دهید و برای مقدار نامعتبر پیام «شکل ناشناس» نمایش دهید.
  3. برنامه‌ای بنویسید که اگر نام کاربری "admin" و رمز عبور "1234" بود پیام «ورود موفق» و در غیر این صورت پیام «اطلاعات نادرست» نمایش دهد. استفاده از شرط تودرتو یا شرط ترکیبی مجاز است.

۵. کلید پاسخ پیشنهادی

بخش الف

  1. true یا false
  2. زمانی که شرط if نادرست باشد.
  3. باعث خروج از switch می‌شود و از اجرای caseهای بعدی جلوگیری می‌کند.
  4. switch برای مقایسه یک متغیر با چند مقدار مشخص مناسب است و elseif برای بررسی شرط‌های مختلف و بازه‌ها انعطاف بیشتری دارد.
  5. برای شرط‌های کوتاه و ساده.

بخش ب

  1. در شرط از = استفاده شده است. باید از == استفاده شود. شکل درست: if ($age == 18).
  2. در case "قرمز" دستور break; نوشته نشده است. بنابراین case "آبی" نیز اجرا می‌شود. باید پس از دستور echo "رنگ گرم"; دستور break; اضافه شود.

بخش ج: نمونه پاسخ

پاسخ تمرین ۱ بخش ج:

<?php
$score = 16;

if ($score >= 17) {
    echo "عالی";
} elseif ($score >= 14) {
    echo "خوب";
} elseif ($score >= 10) {
    echo "قبول";
} else {
    echo "رد";
}
?>

پاسخ تمرین ۲ بخش ج:

<?php
$shape = "circle";

switch ($shape) {
    case "circle":
        echo "دایره";
        break;
    case "square":
        echo "مربع";
        break;
    case "triangle":
        echo "مثلث";
        break;
    default:
        echo "شکل ناشناس";
        break;
}
?>

پاسخ تمرین ۳ بخش ج:

<?php
$username = "admin";
$password = "1234";

if ($username == "admin" && $password == "1234") {
    echo "ورود موفق";
} else {
    echo "اطلاعات نادرست";
}
?>

در این پاسخ از عملگر منطقی && استفاده شده است. اگر این عملگر آموزش داده نشده است، دانش‌آموز می‌تواند از شرط تودرتو استفاده کند:

<?php
$username = "admin";
$password = "1234";

if ($username == "admin") {
    if ($password == "1234") {
        echo "ورود موفق";
    } else {
        echo "اطلاعات نادرست";
    }
} else {
    echo "اطلاعات نادرست";
}
?>

۷. جمع‌بندی نهایی

دستورهای شرطی یکی از پایه‌های مهم برنامه‌نویسی هستند. دانش‌آموز باید بتواند:

  1. شرط مناسب را تشخیص دهد.
  2. ساختار مناسب if، elseif، else یا switch را انتخاب کند.
  3. کد را بدون خطای نحوی بنویسد.
  4. نتیجه برنامه را به درستی پیش‌بینی کند.