while true vs. for i= 1:Inf

So I was recently posed with the question, what is the difference between a while true loop and a for i = 1:Inf loop. I have done quite a bit of research, but I cannot seem to come up with an answer. Do you know?

回答 (3 件)

per isakson
per isakson 2012 年 12 月 13 日

2 投票

The for-loop provide the loop-variable, ii. Why, is that interesting?
James Tursa
James Tursa 2012 年 12 月 13 日
編集済み: James Tursa 2012 年 12 月 13 日

1 投票

In addition to what Per Isakson has written, I would add that the loop variable, after a certain point, will lose precision and become ill-defined. I think MATLAB will try to gracefully provide a value for ii, but after a point the successive ii's will be equal to each other until the background rounding scheme clocks it over into the next representable value. (As I recall, there was a previous similar thread some time ago that explored this topic)

2 件のコメント

Matt Fig
Matt Fig 2012 年 12 月 14 日
Warning: Warning: FOR loop index is too large. Truncating to 281474976710655
bym
bym 2012 年 12 月 14 日
There is also a MISRA-C rule regarding a while true vs a for loop in C, but I do not know if that extends to Matlab

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

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 12 月 13 日

0 投票

k=0;
while rand<0.8
k=k+1;
end
The while loop will run until a condition rand < 0.8 is false, we don't know when it occurs, because rand is a random number. In this case we can't use a for loop

2 件のコメント

michal.markun
michal.markun 2022 年 12 月 28 日
Why not? Even if slightly longer code...
for k=1:Inf,
if rand>=0.8,
break,
end;
end;
Walter Roberson
Walter Roberson 2022 年 12 月 28 日
Because it might take more than 281474976710655 iterations which is the limit for 1:inf loops.

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

カテゴリ

ヘルプ センター および File ExchangeLoops and Conditional Statements についてさらに検索

質問済み:

2012 年 12 月 13 日

コメント済み:

2022 年 12 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by