شرط 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.

خلاصه

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط