这是我写的代码,用来获得每个数字等级对应的字母等级。我希望确保用户不输入任何字符串或字符作为输入。只有数字。所以我使用了isnumeric函数,但是代码不起作用,当我输入一个字符串时,while循环也不会中断。它只会给我一个错误。都会很感谢你的帮助。谢谢。
c=input('What is your grade? ');
while 1
if ~isnumeric(c)
break
end
if c>=90 && c<=100
disp('A');
elseif c<90 && c>=80
disp('B');
else
disp('F');
end
end发布于 2020-06-12 13:35:42
看看validateattributes吧。它比简单的isnumeric强大得多,例如,你可以指定一个数字应该位于的范围:{'>',0,'<',10}或要求他们为nonnegative
validateattributes(x,{'numeric'},{'nonnegative'})发布于 2020-06-12 15:09:03
input评估用户输入的内容*。如果用户输入的不是有效的MATLAB表达式,您将看到一条错误消息。相反,
c = input('What is your grade? ', 's');'s'参数使得该函数以字符串的形式准确返回用户键入的内容。然后,您可以使用str2double将其转换为数字。如果不是数字,则返回NaN。您可以对此进行测试:
while true
c = input('What is your grade? ', 's');
c = str2double(c);
if isnan(c)
break
end
disp(c)
end*这种评估实际上使在此表单中使用input变得危险,例如,用户可以输入delete('c:/windows')或类似的东西来破坏您的系统。
https://stackoverflow.com/questions/62331121
复制相似问题