While loop question, one too many loops happens.

1 visualización (últimos 30 días)
Dan Po
Dan Po el 11 de Oct. de 2016
Respondida: Dan Po el 15 de Oct. de 2016
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

Respuesta aceptada

Walter Roberson
Walter Roberson el 11 de Oct. de 2016
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 comentarios
Dan Po
Dan Po el 11 de Oct. de 2016
Input is not mobile supported. Goodnight.
Dan Po
Dan Po el 11 de Oct. de 2016
Editada: Dan Po el 11 de Oct. de 2016
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)

Iniciar sesión para comentar.

Más respuestas (1)

Dan Po
Dan Po el 15 de Oct. de 2016
Could someone refer me to a place that tells how to qualify inputs?

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by