جمعبندی، خطاهای رایج، تمرینهای جامع و ارزشیابی
هدفهای آموزشی
در پایان این مرحله، دانشآموز باید بتواند:
- مفاهیم اصلی دستورهای شرطی در PHP را جمعبندی کند.
- خطاهای رایج در نوشتن شرطها را تشخیص دهد.
- برای یک مسئله واقعی، ساختار شرطی مناسب انتخاب کند.
- برنامهای کوتاه با استفاده از
if،else،elseifیاswitchبنویسد.
۱. جمعبندی مطالب
در این جزوه، موارد زیر آموزش داده شد:
- مفهوم شرط و نتیجههای
trueوfalse. - عملگرهای مقایسه مانند
==،!=،>،<،>=و<=. - دستور
ifبرای اجرای دستورها در صورت درست بودن شرط. - دستور
elseبرای اجرای دستورها در صورت نادرست بودن شرط. - دستور
elseifبرای بررسی چند شرط پشت سر هم. - شرطهای تودرتو برای بررسی شرط داخل شرط.
- دستور
switchبرای مقایسه یک متغیر با چند مقدار مشخص. - نقش
breakدرswitch. - عملگر سهگانه برای شرطهای ساده و کوتاه.
نکته مهم: انتخاب ساختار مناسب به نوع مسئله بستگی دارد.
- برای بررسی بازهها و شرطهای منطقی، از
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;
}
?>
۴. ارزشیابی
ارزشیابی زیر برای سنجش یادگیری دانشآموزان طراحی شده است. هر بخش را میتوان به صورت جداگانه نمرهدهی کرد.
بخش الف: پرسشهای کوتاه
- نتیجه بررسی شرط در PHP یکی از دو مقدار ......... یا ......... است.
- دستور
elseچه زمانی اجرا میشود؟ - وظیفه
breakدرswitchچیست؟ - تفاوت اصلی
switchوelseifرا بنویسید. - عملگر سهگانه برای چه نوع شرطهایی مناسب است؟
بخش ب: تشخیص خطا
کدهای زیر را بررسی کنید و خطا را توضیح دهید:
<?php
$age = 20;
if ($age = 18) {
echo "برابر است";
}
?>
<?php
$color = "قرمز";
switch ($color) {
case "قرمز":
echo "رنگ گرم";
case "آبی":
echo "رنگ سرد";
break;
}
?>
بخش ج: برنامهنویسی
- برنامهای بنویسید که نمره دانشآموز را بررسی کند و بر اساس جدول زیر پیام مناسب نمایش دهد:
- بزرگتر یا برابر ۱۷: «عالی»
- بزرگتر یا برابر ۱۴: «خوب»
- بزرگتر یا برابر ۱۰: «قبول»
- کمتر از ۱۰: «رد»
- برنامهای بنویسید که نوع یک شکل هندسی را با
switchتشخیص دهد. مقدار متغیر$shapeمیتواند"circle"،"square"یا"triangle"باشد. برای هر شکل پیام مناسب نمایش دهید و برای مقدار نامعتبر پیام «شکل ناشناس» نمایش دهید. - برنامهای بنویسید که اگر نام کاربری
"admin"و رمز عبور"1234"بود پیام «ورود موفق» و در غیر این صورت پیام «اطلاعات نادرست» نمایش دهد. استفاده از شرط تودرتو یا شرط ترکیبی مجاز است.
۵. کلید پاسخ پیشنهادی
بخش الف
trueیاfalse- زمانی که شرط
ifنادرست باشد. - باعث خروج از
switchمیشود و از اجرایcaseهای بعدی جلوگیری میکند. switchبرای مقایسه یک متغیر با چند مقدار مشخص مناسب است وelseifبرای بررسی شرطهای مختلف و بازهها انعطاف بیشتری دارد.- برای شرطهای کوتاه و ساده.
بخش ب
- در شرط از
=استفاده شده است. باید از==استفاده شود. شکل درست:if ($age == 18). - در
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 "اطلاعات نادرست";
}
?>
۷. جمعبندی نهایی
دستورهای شرطی یکی از پایههای مهم برنامهنویسی هستند. دانشآموز باید بتواند:
- شرط مناسب را تشخیص دهد.
- ساختار مناسب
if،elseif،elseیاswitchرا انتخاب کند. - کد را بدون خطای نحوی بنویسد.
- نتیجه برنامه را به درستی پیشبینی کند.