Problem in using 'break' and 'while'

1 回表示 (過去 30 日間)
Jalali
Jalali 2012 年 10 月 5 日
I have problem in the while loop below. Looks like the break doesn't work, because sometimes R<=0.3 and s becomes one or bigger. What I need is that when R<=0.3 the loop should stop, and when R>0.3 a new x should be generated.
x= rand(); a=0; s=0;
while x>0.1
R=rand();
if R<= 0.3
a=a+1;
break
else
s=s+1;
x=rand();
end
end
Thanks,

回答 (1 件)

Matt Fig
Matt Fig 2012 年 10 月 5 日
編集済み: Matt Fig 2012 年 10 月 5 日
This will prove to you that the break statement does work:
x= rand();
a=0;
s=0;
while 1 % Infinite loop? If break doesn't work then yes!
R=rand();
if R<= 0.3
a=a+1;
break % The only way out of the loop...
else
s=s+1;
x=rand();
end
end
When I run this, I always get a=1 (as expected), and s ranges form 0 to 6 on average. But the break statement is clearly working...
  4 件のコメント
Image Analyst
Image Analyst 2012 年 10 月 5 日
You could also use true instead of 1 - maybe using true would have made it more understandable???
Matt Fig
Matt Fig 2012 年 10 月 5 日

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by