For-Loop vs While-Loop

2 ビュー (過去 30 日間)
Maroulator
Maroulator 2014 年 8 月 10 日
コメント済み: Maroulator 2014 年 8 月 11 日
I have the code in Part1 below which stores the values of x and y after the last iteration of my while-loop. Is there a way for me to achieve to what I am trying to do in Part2; that is, to retain all values of x and y along the way as the loop is still running/prompting the user for inputs? I have already achieved this with a for-loop, but I need to be able to do this with a while-loop and have hit a wall.
Any ideas? Also, it would be nice to be able to display an error message when the while-condition no longer holds true; the only way I know how to do this is with an if-statement and disp construct, which doesn't seem to be working inside the while-loop (again, I've been able to accomplish this in a for-loop but would like to do it in a while-loop). Any thoughts are welcome.
*
Part1 - Currently have:*
temp=('Enter initial [x y] pair: ');
while isempty(temp)==0
x=temp(1);
y=temp(2);
temp=input('Enter next [x y] pair');
end
*Part2 - Would like to have:*
temp=('Enter initial [x y] pair: ');
while isempty(temp)==0
x=temp(1);
y=temp(2);
temp=input('Enter next [x y] pair');
end

採用された回答

Image Analyst
Image Analyst 2014 年 8 月 10 日
You can have them enter some value that indicates when to quit, like if x or temp is negative of something
if x < 0
break;
end
or
if temp(1) < 0 || temp(2) < 0
uiwait(warndlg('Exiting loop because you entered a negative number'));
break;
end
  3 件のコメント
Image Analyst
Image Analyst 2014 年 8 月 10 日
Just use a counter that you increment each time:
counter = 1;
while...........
x(counter) = ..............
y(counter) = ...............
counter = counter + 1;
end
Maroulator
Maroulator 2014 年 8 月 11 日
Nice! Thanks again.

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

その他の回答 (0 件)

カテゴリ

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