شرط if...then...else
تصمیمگیری در پاسکال: if ساده، if/else، شرطهای زنجیرهای و بلوکهای begin/end.
زندگی پر از تصمیم است!
برنامهها هم مثل زندگی مدام تصمیم میگیرند: «اگر نمره بالای ۱۰ بود قبول است»، «اگر رمز درست بود وارد شو». این کار در پاسکال با if انجام میشود.
ساختارهای if
۱. if ساده
if شرط then
دستور;
var age: integer;
begin
age := 20;
if age >= 18 then
writeln('بزرگسال هستید');
end.
۲. if...else
if شرط then
دستور۱
else
دستور۲;
var n: integer;
begin
n := 7;
if n mod 2 = 0 then
writeln('زوج')
else
writeln('فرد');
end.
یادآوری مهم: قبل از
else هرگز نقطهویرگول نگذارید!۳. چند دستور با begin...end
اگر بیش از یک دستور دارید، حتماً بلوک کنید:
if score >= 10 then
begin
writeln('قبول شدید!');
writeln('آفرین');
end
else
begin
writeln('مردود');
writeln('دفعه بعد بهتر!');
end;
۴. زنجیره if/else if
if score >= 17 then
writeln('عالی (A)')
else if score >= 14 then
writeln('خوب (B)')
else if score >= 10 then
writeln('قبول (C)')
else
writeln('مردود (F)');
شرطهای مرکب با and/or
var age: integer;
hasTicket: boolean;
begin
age := 16;
hasTicket := true;
{ هر دو شرط باید برقرار باشد }
if (age >= 12) and (hasTicket) then
writeln('میتوانید وارد سینما شوید');
{ حداقل یکی }
if (age < 12) or (not hasTicket) then
writeln('ورود مجاز نیست');
end;
در شرطهای مرکب حتماً پرانتز بگذارید — چون اولویت and از عملگرهای مقایسه بالاتر است و بدون پرانتز، جواب غلط میشود!
شرطهای تودرتو
if n > 0 then
begin
if n > 100 then
writeln('عدد بزرگی است')
else
writeln('عدد مثبت کوچک');
end
else
writeln('عدد منفی یا صفر');
مثال: تعیین فصل
var month: integer;
begin
month := 7;
if (month >= 1) and (month <= 3) then
writeln('بهار')
else if (month >= 4) and (month <= 6) then
writeln('تابستان')
else if (month >= 7) and (month <= 9) then
writeln('پاییز')
else if (month >= 10) and (month <= 12) then
writeln('زمستان')
else
writeln('ماه نامعتبر!');
end.
خلاصه
if شرط then دستور— اجرای شرطیif ... then ... else ...— دو راهه (بدون ; قبل از else)- چند دستور = بلوک
begin...end - شرط مرکب = پرانتز + and/or/not
این مبحث بخشی از دوره آموزش کامل پاسکال است.