How can I use a while loop to check if user input is an integer?

I want the user to input a non zero even interger. However with my current code, even non zero intergers like '2' aren't recognised as so. I could remove the ~(isinteger(a) but then the code fails when user inputs a decimal. How can i incoporate it to say that the number inputted must be an integer.
prompt= 'enter non zero even integer'
z= input(prompt)
n= rem(z,2);
while (n==1)|| (a==0)||~(isinteger(z))
z= input ('try again');
n= rem(z,2);
end
disp('This number is a non zero even integer');

 Réponse acceptée

Adam Danz
Adam Danz le 24 Jan 2019
Modifié(e) : Adam Danz le 24 Jan 2019
The while loop will continually ask for a non-zero even integer until one is entered.
prompt= 'enter non zero even integer '
z = 0;
while z=0 || mod(z,2)~=0
z= input(prompt)
end
If you'd like to avoid negative numbers, too,
while z<=0 || mod(z,2)~=0

3 commentaires

i'd like to incoporate a "try again" element to it when the number inputted is wrong. how could i do this? Thank you
prompt= 'enter non zero even integer ';
z= input(prompt);
while z=0 || mod(z,2)~=0
prompt = 'try again '; %but now the reader won't know the limitations
z= input(prompt)
end
thank you!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by