MATLAB Answers

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

조회 수: 82(최근 30일)
adena0
adena0 24 Jan 2019
댓글: adena0 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');

  댓글 수: 0

로그인 to comment.

채택된 답변

Adam Danz
Adam Danz 24 Jan 2019
편집: Adam Danz 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

adena0
adena0 24 Jan 2019
i'd like to incoporate a "try again" element to it when the number inputted is wrong. how could i do this? Thank you
Adam Danz
Adam Danz 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

로그인 to comment.

추가 답변(0개)

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by