matlab循环语句问题
我自己写了一段,但是发现不对.请各位帮我看看改如何改在1到12内.假如不是整数提示"需要输入整数"假如输入非数字提示"???".当在12内就运算i=input('Whic...
我自己写了一段,但是发现不对.请各位帮我看看改如何改在1到12内. 假如不是整数提示"需要输入整数" 假如输入非数字提示"???" .当在12内就运算 i = input('Which multiplication table?');if i~=fix(i) disp ('Please enter an integar number only.');elseif i>=1 && i<=12 for x = 1:i; y=i*x; disp('%d x %d=%d',x,i,y); endelseif isnan(i)~=0 disp('???Undefined function or variable');elseif x>12 or x<1disp('Please enter a number from 1 to12.'); end
展开
展开全部
有几个问题:
(1)应该先判断输入的是数字还是字符串
(2)逻辑判断中没有“or”,应该用“||”代替
(3)disp函数不能那样用,得先用sprintf,再用disp。
改过之后的程序如下:
i = input('Which multiplication table?');
if isnumeric(i)
if i~=fix(i)
disp ('Please enter an integar number only.');
elseif i>12 || i<1
disp('Please enter a number from 1 to12.');
elseif i>=1 && i<=12
for x = 1:i;
y=i*x;
out = sprintf('%d x %d=%d',x,i,y);
disp(out);
end
end
elseif ischar(i)
disp('???Undefined function or variable');
end
下面贴出运行的结果:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询