Continue & break ، شرط سویچ و آرایه ها
درس پنجم
نحوه استفاده از دستور برک break :
هر جا که از این دستور در بدنه ی حلقه for استفاده کنیم زمانی که برنامه به این دستور می رسد کنترل برنامه به انتهای حلقه for منتقل می شود و از حلقه for خارج می شود. به بیانی دیگر جهت خروج سریع از حلقه از آن استفاده می شود.
توضیح بلوک چارت حلقه whil : شرط حلقه بررسی می شود اگر درست باشد وارد دستورات حلقه می شود، تکرار می شود و بار دیگر وارد شرط حلقه می گردد.
درون دستورات، شرط هم قرار می گیرد. چنانچه شرط نادرست باشد دستورات اجرا، و دوباره وارد
شرط حلقه می شوند. اما اگر درست باشد وارد برک و سریعا از حلقه خارج می گردند.
نحوه استفاده از دستور continue :
هر جا که از این دستور در بدنه ی حلقه for استفاده کنیم زمانی که کنترل برنامه به این دستور می رسد از اجرای بقیه ی دستورها تا انتهای بدنه صرف نظر می شود و کنترل برنامه دوباره به ابتدای حلقه منتقل می شود.
توضیح بلوک چارت حلقه whil : شرط حلقه بررسی می شود اگر درست باشد وارد دستورات حلقه می شود، تکرار می شود و بار دیگر وارد شرط حلقه می گردد. درون دستورات، شرط هم قرار می گیرد. چنانچه شرط نادرست باشد دستورات اجرا، و دوباره وارد شرط حلقه می شوند. اما اگر درست باشد وارد continue و از حلقه خارج می گردند. نکته حائز اهمیت اینکه در continue قبل از شرط نیاز به دستورات دارید در غیر این صورت حلقه ناتمام خواهی داشت.
به شیوه نوشتن دستورات زیر دقت کنید.
اکسپرت جدید بسازید و نام گذاری کنید.
مراحل را بدون تغییر finish برسانید.
دستورات را با توجه به تصویر زیر وارد نمایید.
با دستور وارد شده در پرینت دستور از 1 تا 10 چاپ می شود.
اگر بخواهیم به عنوان مثال شماره 2 چاپ نشود شرطی را درون آن وارد می کنیم.
با دستور وارد شده زمانی که i ، 2 بشود و وارد حلقه بشود continue شده و دوباره وارد حلقه می شود بدون اعمال پلاس پلاس. بنابراین دستورات بعد از continue اعمال نخواهد شد. یا می توان دو دستور کنار هم بنویسید. به عنوان مثال: if(i==2 || i==8)
(اما اگر دستور پلاس پلاس را بالا ببریم در حقیقت یکبار i چاپ نخواهد شد. در این حالت i باید مقدار صفر بگیرد و ابتدا پلاس پلاس شود تا در نتیجه در پرینت مقدار 2 چاپ شود. )
در پایان دستورات compile را کلیک و به سراغ اجرای برنامه بروید. (بناست دستور 1 تا 10 بدون 8و2 اجرا شود).
دستور نویسی break مانند continue می باشد با این تفاوت که به جای واژه continue می بایست واژه break قید شود. سایر عملکردها نیز اجرا خواهد شد. در درس های آتی بیشتر به این مباحث پرداخته خواهد شد .
شرط switch:
برای استفاده از عملگر سوییچ (switch Operator) از کلمه کلیدی switch استفاده می شود. در مقابل کلمه ی کلیدی switch عبارتی که قرار است مقایسه روی آن انجام شود قرار می گیرد . و در بدنه ی عملگر سوئیچ در مقابل کلمه ی کلیدی case حالت های مقایسه قرار می گیرند.
توضیح بلوک چارت: ابتدا ورودی گرفته و با کیس 1 بررسی خواهد کرد اگر درست باشد دستورات 1 را انجام خواهد دارد سپس break و در آخر خروجی از برنامه. اگر نادرست باشد کیس2 را بررسی می کند و به صورت قبلی عملیات یک به یک اجرا خواهد شد. به شیوه نوشتن دستورات دقت نمایید بعد از نوشتن کیس حتما دو نقطه قرار بگیرد.
switch (n)
{
:case 1
;x=95; break
:case 2
;x=105; break
:case 3
;x=175; break
:case 4
;x=195; break
:default
;x=0
}
می بایست با قرار دادن عدد 2 همان را در پرینت نمایش دهد.
اینک با قرار دادن عدد منفی باید دستور default اجرا شود.
معرفی آرایه array :
برخی مواقع نیازمندیم چندین مقدار همراه هم را در یک بخش قرار دهیم تا هم مقدار دهی و هم فراخوانی آن راحت تر باشد. همانگونه که می دانید متغیرها یک اسم می گرفتند و یک مقدار، اما آرایه ها برعکس آن می توانند یک اسم و چندین مقدار بگیرند.
به عنوان مثال :
; نام آرایه نوع آرایه[طول آرایه]
; int X [4]
کد رو به رو جدولی را در حافظه درست می کند متناسب با مقدار تعریف شده تعداد خانه ها تشکیل می شوند، خانه ها با شماره اندیس شماره گذاری می شوند. به عنوان مثال :
دقت کنید که همیشه طول آرایه یک مقدار بزرگتر از اندیس آرایه می باشد زیرا شماره گذاری کندل ها از صفر شروع می شود. و به صورت backward (از راست به چپ) می باشد. به این شیوه شماره گذاری (time series) گفته میشود.
یک روش مقدار دهی اینکه در همان زمان که تعریف می شود مقدار هم داده شود.
;int mark[5] = {19, 10, 8, 17, 9}
روش دوم اینکه طول آرایه را برای آن تعریف نکنید. اما مقدار ها را به آن بدهید. برنامه با توجه به مقدارهایی که داده شده طول آرایه را تشخیص می دهد.
;int mark[] = {19, 10, 8, 17, 9}
روش دیگر ابتدا آرایه را تعریف کنید. طول آن را نیز وارد کنید اما مقدار ندهید. در جای دیگری از برنامه به آن مقداردهی کنید. به عنوان مثال:
;int mark[5]
;mark[0] = 19
;mark[1] = 10
;mark[2] = 8
;mark[3] = 17
;mark[4] = 9
با هر روش مقداردهی برنامه جدول زیر را خواهد ساخت.
وارد فضای متاتریدر شده و دستورات وارد نمایید.
چنانچه بخواهیم عدد اول چاپ شود مقدار صفر را در comment وارد کنید. زیرا همانگونه که اشاره شد اعداد از صفر شروع می شوند.
اگر بخواهیم 5 به ما نمایش شود باید عدد 3 را در comment قرار دهید.
منبع : کتاب آموزش زبان MQL (دوره مقدماتی)
مدرس: استاد حسین احمدی
پاسخها