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

20 Ansichten (letzte 30 Tage)
adena0
adena0 am 24 Jan. 2019
Kommentiert: adena0 am 24 Jan. 2019
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');

Akzeptierte Antwort

Adam Danz
Adam Danz am 24 Jan. 2019
Bearbeitet: Adam Danz am 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 Kommentare
Adam Danz
Adam Danz am 24 Jan. 2019
Bearbeitet: Adam Danz am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by