(۲۱ تیر ۱۳۹۷ ۰۷:۲۵ ب.ظ)Katerina Petrova نوشته شده توسط: سلام ،چجوری میشه گفت اگه شرط برقرار بود/نبود برو یه سری کارا رو از اول انجام بده(اونقدر تکرار کن) تا شرط برقرار بشه/نشه!
goto که ظاهرا نداریم تو متلب، با break , continue و نوشتن ۱۰تا elseif پشت سرهم جواب نداد..
حتی تبدیل به تابع بازگشتیش کردم ولی بازم نشد
هلپ
کد:
for i=1:up
j=randi(x);
if A(j)>=B(i)
// دستورات //
else // انقدر جِی رو تولید کن تا شرط برقرار بشه
اولا
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
رو بخونید ببینید چرا نباید از goto استفاده کنید و چرا از زبانهای ساختیافته حذف شده.
بعدش هم این مشکلتون راهحلهای زیادی داره. سعی کنید زیاد اسکریپتنویسی کنید تا این جور مسائل ساده براتون مشکل نشه.
منظورتون از
"انقدر جِی رو تولید کن تا شرط برقرار بشه" واضح نیست چه شرطی. در حالت کلی یه راهش این هست:
کد:
else while(!condition){
...
}
البته باید حواستون باشه که condition داخل حلقهی while تغییر کنه. ممکنه هیچ وقت تغییر نکنه که میتنید یه counter هم تعریف کنید:
کد:
else while(!condition && i++ < max){
...
}
البته فکر کنم متلب increment قبول نمیکنه و ++ رو باید داخل حلقه بیارید.
اگه شرطتون هم این هست که j رو طوری تولید کنه که (A(j از (B(i بزرگتر باشه، اون موقع میتونید اصلا ادغام کنید:
کد:
for i = 1 : up
j = randi(x)
while A(j) < B(i)
j = randi(x)
end
دستورات
end
یا
کد:
for i = 1 : up
while 1 == 1
j = randi(x)
if A(j) >= B(i)
break
end
end
دستورات
end