How to request a specific user input?
    82 views (last 30 days)
  
       Show older comments
    
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 Comments
Accepted Answer
  Awais Saeed
      
 on 20 Aug 2021
        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 Comments
More Answers (3)
  Alan Stevens
      
      
 on 20 Aug 2021
        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)
  Simon Chan
      
 on 20 Aug 2021
        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)
0 Comments
See Also
Categories
				Find more on Data Type Identification in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



