how to prompt a user to enter a string, then check that the entered string is one of the acceptable entries. If it is not, user must enter it again.

7 Ansichten (letzte 30 Tage)
I am trying to prompt the user to input a unit for speed. I have tried while loops, if/elseif/else, but I cannot get it to work correctly.
Here is an example of a while loop that I tried. I have tried many other ways but I cannot seem to get it to work. If I use an if/elseif/else approach, it will deny an incorrect entry two times before it just lets the user continue. However, it correctly detected when a proper unit is entered. I would like to know how to indefinitely stop the user if they do not enter one of the correct units, and then let them continue once a correct unit is entered.
unit = input('TEXT PROMPTING USER TO INPUT UNITS (EXAMPLE OF ACCEPTED UNITS (unit q, unit w, unit e, unit r) ', 's');
while unit ~= strcmpi(unit, 'q') || strcmpi(unit, 'w') || strcmpi(unit, 'e') || strcmpi(unit, 'r')
unit = input('ERROR MESSAGE IF UNACCEPTED UNIT IS ENTERED (DISPLAYING ACCEPTED UNITS AGAIN: ', 's');
end

Akzeptierte Antwort

the cyclist
the cyclist am 19 Mär. 2021
Bearbeitet: the cyclist am 19 Mär. 2021
I think this is what you intended ...
unit = input('TEXT PROMPTING USER TO INPUT UNITS (EXAMPLE OF ACCEPTED UNITS (unit q, unit w, unit e, unit r) ', 's');
while not(strcmpi(unit, 'q') || strcmpi(unit, 'w') || strcmpi(unit, 'e') || strcmpi(unit, 'r'))
unit = input('ERROR MESSAGE IF UNACCEPTED UNIT IS ENTERED (DISPLAYING ACCEPTED UNITS AGAIN: ', 's');
end
rather than checking that the value of unit was equal to that series of logical statements.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 19 Mär. 2021
unit = input('TEXT PROMPTING USER TO INPUT UNITS (EXAMPLE OF ACCEPTED UNITS (unit q, unit w, unit e, unit r) ', 's');
while ~ismember(lower(unit), {'q', 'w', 'e', 'r'})
unit = input('ERROR MESSAGE IF UNACCEPTED UNIT IS ENTERED (DISPLAYING ACCEPTED UNITS AGAIN: ', 's');
end

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by