فصل چهارم : دستورات شرطی و انشعاب

دستور If

اگر به اولین برنامه خود برگردیم، آیا جالب تر نیست که به جای گفتن کلی Hello World، بتوانیم “صبح بخیر دنیا” یا “عصر بخیر دنیا” را بسته به زمان روز بگوییم؟

در اجرای برنامه بعدی، اگر زمان (ساعت) رایانه زودتر از ساعت ۱۲ بعدازظهر باشد، جمله “صبح بخیر دنیا” چاپ می شود و اگر زمان رایانه بعد از ساعت ۱۲ بعد از ظهر باشد، جمله “عصر به خیر دنیا” چاپ خواهد شد:

 

If (Clock.Hour < 12) Then

TextWindow.WriteLine(“Good Morning World”)

EndIf

If (Clock.Hour >= 12) Then

TextWindow.WriteLine(“Good Evening World”)

EndIf

 

بسته به زمان اجرای این برنامه، یکی از خروجی های زیر را مشاهده خواهید کرد:

 

شکل 1-4 _ صبح به خیر دنیا

شکل ۱-۴ : صبح به خیر دنیا

 

شکل 2-4 _ عصر به خیر دنیا

شکل ۲-۴ : عصر به خیر دنیا

 

بیایید سه خط اول برنامه را تحلیل کنیم.

قبلاً متوجه شده اید که این سه خط به رایانه می گوید که اگر زمان (ساعت) کمتر از ۱۲ یاشد، خروجی «صبح بخیر دنیا» را نشان دهد.

 

کلمات If، Then و EndIf جزو دستورات (کلمات کلیدی) اسمال بیسیک هستند که هنگام اجرای برنامه توسط کامپیوتر قابل درک می باشند.

 

کلمه If همیشه با یک شرط همراه است که در این مورد (Clock.Hour < 12) است.

 

به یاد داشته باشید که شرط بعد از دستور If حتما باید داخل پرانتز باشد. بعد از این شرط ، عملیاتی که در صورت برقراری شرط باید اجرا شوند تاقبل از رسیدن به دستور EndIf قرار می گیرند.

 

نکته: در Small Basic می توانید از شی Clock برای دسترسی به تاریخ و زمان فعلی رایانه استفاده کنید.این شی همچنین مجموعه ای از ویژگی ها را در اختیار شما قرار می دهد که به شما امکان دریافت روز، ماه، سال، ساعت، دقیقه و ثانیه را به طور جداگانه خواهد داد.

 

بین Then و EndIf، ممکن است بیش از یک دستور (عملیات) وجود داشته باشد و اگر شرط If برقرار باشد، رایانه همه آنها را اجرا خواهد کرد.

برای نمونه به این مثال توجه کنید:

 

If (Clock.Hour < 12) Then

TextWindow.Write(“Good Morning. “)

TextWindow.WriteLine(“How was breakfast?”)

EndIf

 

دستور Else

در برنامه ابتدای این فصل، ممکن است متوجه شده باشید که شرط دوم به نوعی زائد است. مقدار Clock.Hour یا کمتر از ۱۲ است یا خیر. یعنی نیازی به بررسی شرط دوم نبود.

 

در مواقعی مانند این، می‌توانیم با استفاده از یک دستور (کلمه کلیدی) جدید مانند Else، دیگر از شرط دوم if..then..endif استفاده نکنیم و برنامه را کوتاه تر کنیم.

 

برنامه قبل را این بار با دستور Else بازنویسی می کنیم که به این صورت می شود:

 

If (Clock.Hour < 12) Then

TextWindow.WriteLine(“Good Morning World”)

Else

TextWindow.WriteLine(“Good Evening World”)

EndIf

خروجی این برنامه دقیقاً مانند برنامه قبل می باشد و این ما را به یک نکته مهم در برنامه نویسی کامپیوتر می رساند:

“در برنامه نویسی، معمولاً راه های زیادی برای انجام یک کار وجود دارد. گاهی اوقات یک راه منطقی تر از راه دیگر است. انتخاب این مورد به عهده برنامه نویس است. با نوشتن برنامه های متعدد و کسب تجربه بیشتر، متوجه این تکنیک های مختلف و مزایا و معایب آنها خواهید شد.”

 

نوشتن برنامه تشخیص عدد زوج یا فرد

برنامه زیر یک عدد را از کاربر دریافت کرده و زوج یا فرد بودن آن را به ما اطلاع می دهد:

TextWindow.Write(“Enter a number: “)

()num = TextWindow.ReadNumber

remainder = Math.Remainder(num, 2)

If (remainder = 0) Then

TextWindow.WriteLine(“The number is Even”)

Else

TextWindow.WriteLine(“The number is Odd”)

EndIf

و هنگامی که این برنامه را اجرا کنید، خروجی مانند زیر را مشاهده خواهید کرد:

 

شکل 3-4 _ زوج یا فرد

شکل ۳-۴ : زوج یا فرد

 

در این برنامه یک عملیات مفید جدید دیگر به نام Math.Remainder را معرفی کرده ایم. همانطور که احتمالا متوجه شده اید، Math.Remainder عدد اول را بر عدد دوم تقسیم کرده و باقیمانده را برمی گرداند.

 

انشعاب

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

 

بیایید نگاهی به برنامه بعدی بیاندازیم:

 

i = 1

:start

TextWindow.WriteLine(i)

i = i + 1

If (i < 25) Then

Goto start

EndIf

 

شکل 4-4 _ استفاده از دستور Goto

شکل ۴-۴ : استفاده از دستور Goto

 

در برنامه بالا، مقدار ۱ را به متغیر i اختصاص دادیم. و سپس یک عبارت جدید اضافه کردیم که به دونقطه ختم می شود (:)

:start

 

به این عبارت برچسب می گویند. برچسب ها مانند نشانک هایی هستند که کامپیوتر آنها را درک می کند. شما می توانید نشانک را هر چیزی نامگذاری کنید و می توانید هر تعداد برچسب را که می خواهید در برنامه خود اضافه کنید، البته تا زمانی که نام همه آنها منحصر به فرد باشد.

 

حال به این جمله از برنامه توجه کنید:

i = i + 1

 

این دستور به رایانه می گوید که عدد ۱ را به متغیر i اضافه کند و دوباره آن را به i اختصاص دهد. بنابراین اگر مقدار i قبل از این دستور ۱ بود، پس از اجرای این دستور ۲ می شود.

 

و نهایتا:

If (i < 25) Then

     Goto start

EndIf

 

این قسمتی از برنامه است که به رایانه می گوید که اگر مقدار i کمتر از ۲۵ باشد، اجرای دستورات را از شروع برچسب استارت شروع کند.

 

اجرای بی پایان

با استفاده از عبارت Goto می‌توانید کاری کنید که رایانه هر چند بار که ما بخواهیم چیزی را تکرار کند.

به عنوان مثال، می توانید برنامه زوج یا فرد را مانند زیر طوری تغییر دهید که برای همیشه اجرا شود.

در این حالت فقط با کلیک بر روی دکمه Close (X) در گوشه سمت راست بالای پنجره می توانید برنامه را متوقف کنید.

:begin

TextWindow.Write(“Enter a number: “)

()num = TextWindow.ReadNumber

remainder = Math.Remainder(num, 2)

If (remainder = 0) Then

TextWindow.WriteLine(“The number is Even”)

Else

TextWindow.WriteLine(“The number is Odd”)

EndIf

Goto begin

 

شکل 5-4 _ برنامه زوج یا فرد با اجرای بی پایان

شکل ۵-۴ : برنامه زوج یا فرد با اجرای بی پایان

 

ترجمه و تألیف : کامبیز حسامی

تهیه شده در : تیناسافت

 

 

بازگشت به صفحه اصلی آموزش اسمال بیسیک

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *