Filter löschen
Filter löschen

How to combine two different conditions for a user?

1 Ansicht (letzte 30 Tage)
Sara Williams
Sara Williams am 9 Feb. 2018
Kommentiert: Sara Williams am 10 Feb. 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?

Antworten (1)

Greg
Greg am 9 Feb. 2018
Bearbeitet: Greg am 9 Feb. 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 Kommentare
Greg
Greg am 9 Feb. 2018
Additionally, your prompt should completely describe the conditions of the input. 'Choose an integer: 1 <= x <= 59'
Sara Williams
Sara Williams am 10 Feb. 2018
Thank you for your help!

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Multidimensional Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by