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

 Accepted Answer

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 Comments

I might have already tried that. I will check it in the morning. Or now on my phone since there is matlab mobile. Thanks
Input is not mobile supported. Goodnight.
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)

Sign in to comment.

More Answers (1)

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

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Asked:

on 11 Oct 2016

Answered:

on 15 Oct 2016

Community Treasure Hunt

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

Start Hunting!