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 (최근 30일)
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

채택된 답변

the cyclist
the cyclist 2021년 3월 19일
편집: the cyclist 2021년 3월 19일
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.

추가 답변 (1개)

Walter Roberson
Walter Roberson 2021년 3월 19일
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

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

태그

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by