case...of
ساختار انتخاب چندگانه case...of با برچسبها، بازهها و بخش else.
وقتی if زیاد میشود!
فرض کنید میخواهید بر اساس عدد روز هفته، اسمش را چاپ کنید. با if هفت شرط زنجیرهای لازم است — زشت و طولانی! راهحل پاسکال: case...of
ساختار
case عبارت of
مقدار۱: دستور۱;
مقدار۲: دستور۲;
...
else
دستور پیشفرض;
end;
مثال: روزهای هفته
var day: integer;
begin
day := 3;
case day of
1: writeln('شنبه');
2: writeln('یکشنبه');
3: writeln('دوشنبه');
4: writeln('سهشنبه');
5: writeln('چهارشنبه');
6: writeln('پنجشنبه');
7: writeln('جمعه');
else
writeln('عدد نامعتبر!');
end;
end.
چند مقدار در یک برچسب
case day of
6, 7: writeln('آخر هفته! 🎉');
1, 2, 3, 4, 5: writeln('روز کاری');
end;
بازه (Range) با ..
var score: integer;
begin
score := 15;
case score of
0..5: writeln('خیلی ضعیف');
6..9: writeln('ضعیف');
10..13: writeln('قابل قبول');
14..17: writeln('خوب');
18..20: writeln('عالی');
else
writeln('نمره نامعتبر!');
end;
end;
case روی کاراکتر و رشته
var grade: char;
begin
grade := 'B';
case grade of
'A': writeln('عالی');
'B': writeln('خوب');
'C': writeln('متوسط');
'D': writeln('ضعیف');
'F': writeln('مردود');
end;
end;
چند دستور در هر شاخه
case n of
1:
begin
writeln('شما گزینه ۱ را انتخاب کردید');
writeln('در حال پردازش...');
end;
2:
begin
writeln('گزینه ۲');
writeln('لطفاً صبر کنید');
end;
end;
case در برابر if زنجیرهای
| ویژگی | case | if/else if |
|---|---|---|
| شرط | فقط مساوی (با مقدار/بازه) | هر شرطی (>, <, and...) |
| خوانایی | عالی برای چندگانه | با زیاد شدن شرطها بد میشود |
| نوع | ordinal (عدد، کاراکتر) | هر نوعی |
خلاصه
case...ofبرای انتخاب چندگانه بر اساس مقدار- برچسبها: مقدار تکی، لیست با کاما، یا بازه
1..5 elseبرای حالت پیشفرض- با
end;بسته میشود (نقطهویرگول!)
این مبحث بخشی از دوره آموزش کامل پاسکال است.