How to request a specific user input?

조회 수: 480 (최근 30일)
Hannah
Hannah . 2021년 8월 20일
댓글: Awais Saeed . 2021년 8월 20일
I want to ask the user if they want to EXP1 or EXP2. If the user enters '1' or '2', then I want to display "running exp 1 or 2", otherwise I want the program to display error message until the user enters '1' or '2'.
prompt = input('Please enter 1 for EXP1 and 2 for EXP2:'); % ask
EXP = input(prompt);
if EXP == 1 || 2 % if the user doesnt input 1 or 2
disp('running exp 1 or 2')
else
EXP = input('ERROR. Please enter 1 for EXP1 and 2 for EXP2:'); %ask again
end
disp(EXP)
This is the code I wrote so far but I don't think that the logic is correct and I also when I try to input '1' or '2' I get the error:
"The first argument to INPUT must be a string or character"
  댓글 수: 2
Hannah
Hannah 2021년 8월 20일
Thanks, now my error is gone. But why if I enter a value that isn't 1 or 2, I dont get a warrning message?

댓글을 달려면 로그인하십시오.

채택된 답변

Awais Saeed
Awais Saeed 2021년 8월 20일
This is the corrected version of your code
prompt = input('Please enter 1 for EXP1 and 2 for EXP2:');
EXP = prompt; % No need to do input(prompt);
if (EXP == 1 || EXP == 2) % do no write EXP == 1 || 2. Its incorrect
disp('running exp 1 or 2')
else
EXP = input('ERROR. Please enter 1 for EXP1 and 2 for EXP2:');
end
disp(EXP)
Note that after displaying 'ERROR.....', your program just stops and do not process with the newly entered value
  댓글 수: 3
Awais Saeed
Awais Saeed 2021년 8월 20일
you are welcome.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Alan Stevens
Alan Stevens 2021년 8월 20일
You don't need "input" twice:
prompt = 'Please enter 1 for EXP1 and 2 for EXP2:'; % ask
EXP = input(prompt);
if EXP == 1 || 2 % if the user doesnt input 1 or 2
disp('running exp 1 or 2')
else
EXP = input('ERROR. Please enter 1 for EXP1 and 2 for EXP2:'); %ask again
end
disp(EXP)
  댓글 수: 1
Hannah
Hannah 2021년 8월 20일
Thanks, I removed the first input and my error is gone. But why if I enter a value that isn't 1 or 2, e.g. 3 I dont get a warrning message?

댓글을 달려면 로그인하십시오.


Simon Chan
Simon Chan 2021년 8월 20일
May do this ina while loop
prompt = 'Please enter 1 for EXP1 and 2 for EXP2:'; % ask
EXP = input(prompt);
while (EXP ~= 1 && EXP ~= 2) % if the user doesnt input 1 or 2
EXP = input('ERROR. Please enter 1 for EXP1 and 2 for EXP2:');
end
disp('running exp 1 or 2')
disp(EXP)

카테고리

Help CenterFile Exchange에서 Variables에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by