ساختار برنامه نیازمند آن است که برنامه نویس باید یک یا چند شرایط را برای ارزیابی یا آزمایش توسط برنامه تعیین کند و دارای کامنت باشد. در ادامه، فرم کلی یک ساختار تصمیم گیری معمول در بسیاری از زبان های برنامه نویسی یافت می شود –
MATLAB انواع مختلفی از حالت ها را برای کد نویسی فراهم می کند. در ادامه به بررسی جزئیات تک تک آن ها پرداخته می شود:
یک عبارت if … end شامل یک علامت if و یک عبارت boolean است که یک یا چند عبارتی است. این حالت توسط end پایان می یابد.
ترکیب دستور if در متلب:
اگر عبارت محاسبه شده درست باشد، بلوک کد داخل دستور if اجرا می شود. اگر عبارت به غلط ارزیابی شود، مجموعه اول کد پس از دستور end اجرا خواهد شد.
دیاگرام
مثال
یک فایل اسکریپتی ایجاد کنید و کد زیر را تایپ کنید –
a = 10; % check the condition using if statement if a < 20 % if condition is true then print the following fprintf('a is less than 20\n' ); end fprintf('value of a is : %d\n', a);
پس از اجرای فایل، نتیجه زیر نمایش داده می شود –
a is less than 20 value of a is : 10
ترکیب دستور if … else در متلب MATLAB:
اگر عبارت داخل <> درست باشد، بلوک if کد اجرا می شود، در غیر این صورت بلوک کد else اجرا خواهد شد.
دیاگرام
مثال
یک فایل اسکریپتی ایجاد کنید و کد زیر را تایپ کنید –
a = 100; % check the boolean condition if a < 20 % if condition is true then print the following fprintf('a is less than 20\n' ); else % if condition is false then print the following fprintf('a is not less than 20\n' ); end fprintf('value of a is : %d\n', a);
هنگامی که کد بالا کامپایل شده و اجرا می شود، نتیجه ی زیر را تولید می کند:
a is not less than 20 value of a is : 100
ترکیب دستور if…elseif…elseif…else…end :
یک عبارت if می تواند یک (یا بیشتر) elseif … و یک عبارت else را دنبال کند که برای آزمایش شرایط مختلف بسیار مفید است.
هنگام استفاده از حالت if… elseif…else، نکات کمی وجود دارد که باید در ذهن داشته باشید:
- اگر می تواند صفر یا یک else داشته باشد، بعد از elseif باید باشد.
- اگر می تواند صفر تا چندین elseif داشته باشد و آنها باید قبل از else باشند.
- اگر یک elseif موفق شود، هیچ یک از elseif موجود دیگر یا else مورد آزمایش قرار نخواهد گرفت.
مثال:
یک فایل اسکریپت ایجاد کنید و کد زیر را در آن بنویسید:
a = 100; %check the boolean condition if a == 10 % if condition is true then print the following fprintf('Value of a is 10\n' ); elseif( a == 20 ) % if else if condition is true fprintf('Value of a is 20\n' ); elseif a == 30 % if else if condition is true fprintf('Value of a is 30\n' ); else % if none of the conditions is true ' fprintf('None of the values are matching\n'); fprintf('Exact value of a is: %d\n', a ); end
هنگامی که کد بالا کامپایل و اجرا می شود، نتیجه ی زیر را تولید می کند:
None of the values are matching Exact value of a is: 100
دستورات شرطی تو در تو
در MATLAB همیشه قانونی است که عبارتهای if-else را در آن قرار دهد که بدین معنی است که شما
می توانید یک دستور if یا else را در داخل دستور else یا elseif استفاده کنید.
شما می توانید به همان شیوه ای که در در حالت کلی در روبه رو نشان داه شده است elseif…else را قرار دهید.
مثال :
یک فایل اسکریپتی ایجاد کنید و کد زیر را در آن بنویسید –
a = 100; b = 200; % check the boolean condition if( a == 100 ) % if condition is true then check the following if( b == 200 ) % if condition is true then print the following fprintf('Value of a is 100 and b is 200\n' ); end end fprintf('Exact value of a is : %d\n', a ); fprintf('Exact value of b is : %d\n', b );
هنگامی که شما فایل را اجرا می کنید، نمایش می دهد :
Value of a is 100 and b is 200 Exact value of a is : 100 Exact value of b is : 200
ترکیب دستور switch در متلب
یک بلوک switch به طور شرطی یک مجموعه از حالت هایی از چندین گزینه را اجرا می کند. هر یک از موارد با یک حالت مورد بررسی قرار می گیرد.
عبارت switch_expression یک عبارت اسکالر یا رشته ای است.
Expression case_exposed یک اسکالر، یک رشته یا آرایه سلولی از اسکالرها یا رشته ها است.
بلوک switch هر موردی را آزمایش می کند تا زمانی که یکی از موارد درست باشد. یک مورد صادق است زمانی که:
- برای اعداد، (eq (case_expression، switch_expression.
- برای رشته ای ها،( strcmp (case_expression، switch_expression.
- برای هدفی پشتیبانی می کنند (eq(expression_expression، expression_expression.
- برای یک case_expression آرایه سلولی، حداقل یکی از عناصر آرایه سلول، match_expression برابر است، همانطور که در بالا برای اعداد، رشته ها و اشیاء تعریف شده است.
وقتی یک مورد درست است، MATLAB دستورات مربوطه را اجرا می کند و سپس از بلوک switch خارج می شود.
بلوک otherwise اختیاری است و تنها زمانی اجرا می شود که هیچ مورد درست نیست.
حالت بیان دستور در متلب به صورت زیر است:
مثال:
یک فایل اسکریپتی ایجاد کنید و کد زیر را در آن بنویسید –
grade = 'B'; switch(grade) case 'A' fprintf('Excellent!\n' ); case 'B' fprintf('Well done\n' ); case 'C' fprintf('Well done\n' ); case 'D' fprintf('You passed\n' ); case 'F' fprintf('Better try again\n' ); otherwise fprintf('Invalid grade\n' ); end
پس از اجرای فایل، نتیجه زیر را نمایش می دهد
Well done
2 نظرات
سلام
مطالبتون خیلی برام مفید بود . خدا خیرتون بده.
سلام.
خواهش میکنم.