Matlab 创建一个脚本,允许用户重复输入值,直到输入每个案例
我正在尝试创建一个脚本,允许用户重复输入x值,直到输入每个案例。我有三种可能的情况:Matlab 创建一个脚本,允许用户重复输入值,直到输入每个案例,matlab,Matlab,我正在尝试创建一个脚本,允许用户重复输入x值,直到输入每个案例。我有三种可能的情况: 当x去除所有计数器变量时,输入案例1。改为使用boolean/logical标志,指示何时执行了特定案例。此外,您还需要检查每个案例本身是否已经执行了特定案例。不要将此作为单独的外部if语句来执行。这可能就是你最初写的那句话不起作用的原因。因此,做这样的事情。我将把%//NEW放在我添加新代码的地方: case1 = false; %// NEW case2 = false; %// NEW ca
- 当
x去除所有
变量时,输入案例1。改为使用计数器
标志,指示何时执行了特定案例。此外,您还需要检查每个案例本身是否已经执行了特定案例。不要将此作为单独的外部boolean/logical
语句来执行。这可能就是你最初写的那句话不起作用的原因。因此,做这样的事情。我将把if
放在我添加新代码的地方:%//NEW
case1 = false; %// NEW case2 = false; %// NEW case3 = false; %// NEW while ~case1 || ~case2 || ~case3 %// NEW: While at least one of the cases has not been run... x = input('Please enter an x value > 0: '); while x < 0 x = input('Invalid! Please enter another x value > 0: '); end if x <= 7 %// NEW if case1 %// NEW: Check if case #1 has already been run %// If it has, show this to the user, then continue in the loop fprintf('Case #1 has already been run!\n'); continue; %// NEW - Continue through the loop. Don't do anything else end case1 = true; %// NEW - Set to true if we haven't run this case already y = x.^3 + 3; fprintf('Case 1: y = %d \n',y); elseif 7<x && x<=12 if case2 %// NEW - Repeat like Case #1 here fprintf('Case #2 has already been run!\n'); %// NEW continue; %// NEW end case2 = true; %// NEW y = (x-3)./2; fprintf('Case 2: y = %d \n',y); elseif x>12 if case3 %// NEW - Repeat like Case #3 here fprintf('Case #3 has already been run!\n'); %// NEW continue; %// NEW end case3 = true; %// NEW y = 4.*x+3; fprintf('Case 3: y = %d \n',y); end %// End if end %// End while disp('All cases have been entered!') %// Display once all cases have been entered
我输入-1,尝试看看它是否拒绝负数,这是正确的。我输入了一个数字,它是
,也就是3。它成功地进入了第一个案例。我试着输入另一个数字,即<7
,即2。它给出的信息是,案例1已经运行。我试着输入一个介于7和12之间的数字。。。所以我试了8次。它相应地生成案例2。我用10再试一次,它说案例2已经运行了。最后,我尝试14,也就是<7
,它生成Case#3并在所有Case成功运行时停止 我相信这就是你想要的>12
if counter1>=1 || counter2>=1 || counter3>=1 disp('That case has been run already');
case1 = false; %// NEW case2 = false; %// NEW case3 = false; %// NEW while ~case1 || ~case2 || ~case3 %// NEW: While at least one of the cases has not been run... x = input('Please enter an x value > 0: '); while x < 0 x = input('Invalid! Please enter another x value > 0: '); end if x <= 7 %// NEW if case1 %// NEW: Check if case #1 has already been run %// If it has, show this to the user, then continue in the loop fprintf('Case #1 has already been run!\n'); continue; %// NEW - Continue through the loop. Don't do anything else end case1 = true; %// NEW - Set to true if we haven't run this case already y = x.^3 + 3; fprintf('Case 1: y = %d \n',y); elseif 7<x && x<=12 if case2 %// NEW - Repeat like Case #1 here fprintf('Case #2 has already been run!\n'); %// NEW continue; %// NEW end case2 = true; %// NEW y = (x-3)./2; fprintf('Case 2: y = %d \n',y); elseif x>12 if case3 %// NEW - Repeat like Case #3 here fprintf('Case #3 has already been run!\n'); %// NEW continue; %// NEW end case3 = true; %// NEW y = 4.*x+3; fprintf('Case 3: y = %d \n',y); end %// End if end %// End while disp('All cases have been entered!') %// Display once all cases have been entered
Please enter an x value > 0: -1 Invalid! Please enter another x value > 0: 3 Case 1: y = 30 Please enter an x value > 0: 2 Case #1 has already been run! Please enter an x value > 0: 8 Case 2: y = 2.500000e+00 Please enter an x value > 0: 10 Case #2 has already been run! Please enter an x value > 0: 14 Case 3: y = 59 All cases have been entered!