How to combine two different conditions for a user?

1 vue (au cours des 30 derniers jours)
Sara Williams
Sara Williams le 9 Fév 2018
Commenté : Sara Williams le 10 Fév 2018
I want the user to input a number that is both an integer and within the range of 1-59. I have managed to do these two things separately, creating two different variables, but I want to combine them to just create one variable.
This is how I wrote them out separately:
while true
prompt2 = 'choose your 2nd number';
x2 = input('choose your 2nd number: ', 's');
if all(isstrprop(x2, 'digit'))
x2 = str2double(x2);
break;
else
disp('Must be an integer');
end
end
while true
prompt2 = 'choose your 2nd number';
x2 = str2double(input('choose your 2nd number: ', 's'));
if (x2 >= 1 && x2 <= 59)
break;
else
disp('Must be between 1 and 59');
end
end
But how would you combine them into 1 so that if you selected a non integer, or one outside the range an error would occur?

Réponses (1)

Greg
Greg le 9 Fév 2018
Modifié(e) : Greg le 9 Fév 2018
Personally, I would just round the input (and inform the user if you choose). Then, all you need is check the range.
x2 = NaN;
while isnan(x2) || x2 < 1 || x2 > 59
prompt2 = 'choose your 2nd number: ';
x2 = round(str2double(input(prompt2, 's')));
end
  2 commentaires
Greg
Greg le 9 Fév 2018
Additionally, your prompt should completely describe the conditions of the input. 'Choose an integer: 1 <= x <= 59'
Sara Williams
Sara Williams le 10 Fév 2018
Thank you for your help!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by