While loop question, one too many loops happens.

I want the counter to stop counting once the value '1' is entered. If '1' is entered when running this script, the while loop runs once more before ending. I do not want this. Am I using break the wrong way, or is something else happening?
Thanks
counter=0;
y_n=0;
while y_n==0
if y_n==1
break
end
counter=counter+1
y_n= input('enter 1 or 0\n')
end

 採用された回答

Walter Roberson
Walter Roberson 2016 年 10 月 11 日

0 投票

You just tested that y_n == 0 in the while statement. It cannot have changed value by the very next statement, at which point you test whether y_n==1 . You should move the "if" to after the input() .
Question: What do you want to have happen if the user enters (for example) 2.134473 ? That is not 0 so the while condition will no longer be true, but the if y_n==1 would be false.

3 件のコメント

Dan Po
Dan Po 2016 年 10 月 11 日
I might have already tried that. I will check it in the morning. Or now on my phone since there is matlab mobile. Thanks
Dan Po
Dan Po 2016 年 10 月 11 日
Input is not mobile supported. Goodnight.
Dan Po
Dan Po 2016 年 10 月 11 日
編集済み: Dan Po 2016 年 10 月 11 日
The matlab online app works as I want, but I will check if my desktop version runs correctly. I was using a live script and was not getting my wanted output. Thank you for your help.
format compact
clear
clc
counter=0;
y_n=0;
while y_n==0
y_n= input('enter 1 or 0 to continue or end the loop \n');
if y_n==1
break
end
counter=counter+1;
fprintf('this is loop %d\n',counter)
end
fprintf('the final count of loops is %d\n',counter)

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

その他の回答 (1 件)

Dan Po
Dan Po 2016 年 10 月 15 日

0 投票

Could someone refer me to a place that tells how to qualify inputs?

カテゴリ

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

質問済み:

2016 年 10 月 11 日

回答済み:

2016 年 10 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by