فصل پنجم : حلقه ها

حلقه For

بیایید نگاهی دوباره به برنامه ای که در فصل قبل نوشتیم، بیاندازیم:

i = 1

:start

TextWindow.WriteLine(i)

i = i + 1

If (i < 25) Then

Goto start

EndIf

این برنامه اعداد ۱ تا ۲۴ را به ترتیب چاپ می کند. فرآیند افزایش یک متغیر در برنامه نویسی بسیار رایج است که زبان های برنامه نویسی معمولاً روش آسان تری برای انجام این کار ارائه می دهند.

 

برنامه زیر معادل برنامه فوق است:

For i = 1 To 24

TextWindow.WriteLine(i)

EndFor

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

شکل 1-5 _ استفاده از حلقه For

شکل ۱-۵ : استفاده از حلقه For

 

همانطور که مشاهده می کنید ما یک برنامه ۷ خطی را به یک برنامه ۳ خطی کاهش داده ایم که دقیقاً کار همان برنامه ۷ خطی را انجام می دهد!

قبلاً گفتیم که معمولاً چندین روش برای انجام یک کار وجود دارد و این یک مثال از همین نوع است.

 

For..EndFor در اصطلاح برنامه نویسی یک حلقه نامیده می شود.

این نوع حلقه به شما اجازه می دهد که یک متغیر را بگیرید، به آن یک مقدار اولیه و یک مقدار پایانی بدهید و اجازه دهید که رایانه متغیر را برای شما افزایش دهد.

هر بار که رایانه متغیر را افزایش می دهد، دستورات بین For و EndFor اجرا می گردند.

 

در حلقه For شما می توانید کاری انجام دهید که متغیر در هر بار به جای ۱ ، ۲ یا بیشتر افزایش یابد.

 

در مثال زیر همه اعداد فرد بین ۱ و ۲۴ را با استفاده از حلقه For چاپ کرده ایم:

For i = 1 To 24 Step 2

TextWindow.WriteLine(i)

EndFor

شکل 2-5 _ چاپ اعداد فرد بین 1 و 24

شکل ۲-۵ : چاپ اعداد فرد بین ۱ و ۲۴

 

قسمت Step 2 از دستور For به رایانه می گوید که مقدار i را به جای ۱ ، دو تا دو تا افزایش دهد. با استفاده از Step می توانید هر افزایشی را که می خواهید مشخص نمایید.

حتی می توانید یک مقدار منفی برای Step تعیین کنید و رایانه را وادار به شمارش معکوس نمایید.

 

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

For i = 10 To 1 Step -1

TextWindow.WriteLine(i)

EndFor

 

شکل 3-5 _ شماره معکوس 10 تا 1

شکل ۳-۵ : شماره معکوس ۱۰ تا ۱

 

حلقه While

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

در حالی که یک حلقه For برای تعداد دفعات از پیش تعریف شده اجرا می شود، حلقه while تا زمانی اجرا می شود که یک شرط معین درست باشد.

 

در مثال زیر، یک عدد را تا زمانی که بزرگتر از ۱ باشد، نصف می کنیم:

number = 100

While (number > 1)

TextWindow.WriteLine(number)

number = number / 2

EndWhile

 

شکل ۴-۵ : استفاده از حلقه While

 

در برنامه بالا، مقدار ۱۰۰ را به متغیر number اختصاص می دهیم و حلقه while را تا زمانی که number بزرگتر از ۱ باشد، اجرا می کنیم.

در داخل حلقه، number را چاپ می کنیم و سپس آن را بر دو تقسیم می کنیم.

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

 

نوشتن این برنامه با استفاده از حلقه For بسیار سخت خواهد بود، زیرا نمی دانیم این حلقه چند بار اجرا می شود.

با یک حلقه while، بررسی یک شرط آسان است و می توانید از رایانه بخواهید که حلقه را ادامه دهد یا از آن خارج شود.

 

جالب است بدانید که هر حلقه while را می توان در یک عبارت If..Then باز کرد. به عنوان مثال، برنامه فوق را می توان به صورت زیر بازنویسی کرد، بدون اینکه بر نتیجه نهایی تأثیر بگذارد:

number = 100

startLabel:

TextWindow.WriteLine(number)

number = number / 2

If (number > 1) Then

Goto startLabel

EndIf

 

نکته: در واقع، رایانه به صورت داخلی هر حلقه while را به عباراتی بازنویسی می کند که از If..Then به همراه یک یا چند دستور Goto استفاده می کنند.

 

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

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

 

 

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

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

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