آموزش پاسکال

دستور Case در پاسکال

دستور Case در پاسکال

با استفاده از دستور Case قادر به برسی شرط یا شرایط خاصی خواهید بود
در حقیقت عملکرد دستور Case معادل با استفاده از چندین دستور if است
همچنین دستور Case نیز از پرکاربردترین دستورات برنامه نویسی پاسکال است و موجب ایجاد خوانایی در برنامه میگردد
شکل کلی استفاده از دستور Case  به صورت زیر است

Case عبارت of
دستور:[[,..],مقدار]مقدار;
[,....]
[else دستور ;]
end;

برای مثال در برنامه زیر از دستور Case استفاده شده است

Var
 A:Integer;
begin
 ReadLn (A);
 Case A OF
  1:WriteLn(1);
  2:WriteLn(2);
 end;
end.

برنامه فوق ابتدا عددی را از کاربر دریافت نموده
و سپس دو طرف شرط مختلف را در مورد عدد مربوطه مورد برسی قرار میدهد
اگر عدد وارد شده 1 باشد عدد 1 نمایش داده خواهد شد
و اگر عدد وارد شده برابر 2 باشد عدد 2 نمایش داده خواهد شد
برنامه فوق را می توان با استفاده از دستور if به صورت زیر نوشت

Var
 A:Integer;
begin
 ReadLn(A);
 if A=1 the WriteLn (1);
 if A=2 the WriteLn (2);
end.

همان طور که مشاهده میکنید استفاده از دستور Case باعث خوانایی بیشتر برنامه میگردد
با توجه به اینکه در صورت برقراری هر یک ارشروط دستور Case میتوانید یک دستور را اجرا کنید
بنابراین استفاده از دستور مرکب نیز امکان پذیر است
برای مثال به برنامه زیر توجه کنید

Var
 A:Integer;
begin
 ReadLn(A);
 case A of
  1 : begin
    WriteLn;
    WriteLn(1);
   end;
  2 : WriteLn(2);
 end;
end.

همچنین میتوانید چندین شرط را در یک مرحله مورد برسی قرار دهید
برای مثال به برنامه زیرتوجه کنید

Var
 A:Integer;
begin
 ReadLn(A);
 case A of
  1,2,3 : WriteLn ('1 or 2 or 3 ' );
  4 : WriteLn ('4');
  5,6 WriteLn ('5 or 6');
 end;
end.

در ضمن میتوانید در صورت عدم برقراری شرایط باعث اجرای دستور یا دستورات خاصی شوید
برای مثال به برنامه زیر توجه کنید

Var
 A:Integer;
begin
 ReadLn(A);
 case A of
  1,2,3 : WriteLn ('Hello' );
  4 : WriteLn ('ok');
  5,6 WriteLn ('Goodby');
 end;
end.

برنامه فوق عددی را از کاربر دریافت نموده و سپس شرایط مختلفی را مورد برسی قرار میدهد
در صورتی که عدد مورد نظر 1 و 2 و 3 باشد کلمه Hello نمایش داده خواهد شد
اگر عددی مرود نظر 4 و 5 باشد کلمه ok نمایش داده می شود
در صورتی که شرایطی قبلی برقرار نباشد
( یعنی عدد مورد نظر  1 و 2 و 3 و 4 و 5 تباشد )
کلمه Goodby نمایش داده خواهد شد
همچنین در تعیین مقدار می توانید از زیر محدوده ها نیز استفاده کنید
برای مثال به برنامه زیر توجه کنید

Var
 A:Integer;
begin
 ReadLn(A);
 case A of
  1..100 : WriteLn ('Hello' );
  200..300 : WriteLn ('ok');
  else WriteLn ('bad');
 end;
end.

توجه داشته باشید که اگر از یک مقدار در دو شرط استفاده نمایید
دستور مربوط به اولین شرط مورد اجرا قرار خواهد گرفت ( در صورت بر قراری شرط )
برای مثال به برنامه زیر توجه کنید

Var
 A:Integer;
begin
 A:=10;
 case A of
  1..10 : WriteLn ('Bad' );
  10..20: WriteLn ('Good');
 end;
end.

اجرای برنامه فوق باعث نمایش کلمه Bad خواهد شد
به این دلیل که در صورت بر قراری هر یک از شروط پاسکال شروط دیگر را برسی نخواهد کرد

[adinserter block="1"]
5/5 - (2 امتیاز)

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا