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

20 views (last 30 days)
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');

Accepted Answer

Adam Danz
Adam Danz on 24 Jan 2019
Edited: Adam Danz on 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 Comments
Adam Danz
Adam Danz on 24 Jan 2019
Edited: Adam Danz on 24 Jan 2019
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

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!