Let users enter anything, save integers, give warning otherwise
1 次查看(过去 30 天)
显示 更早的评论
I want to let users enter any text into my application. I am using the disp() command for this.
I want the users to be able to enter anything. If they enter an integer I want to save it as a string or integer. If they enter anything else I want to give them a warning.
This code doesn't work. Can you help me fix it?
userVar = disp('Enter an integer: ')
if (isinteger(userVar))
% e.g. Enter an integer: 3
A = [A userVar]
else
% e.g. Enter an integer: 3,4
% e.g. Enter an integer: cha1r
warning('Only integers are accepted.')
0 个评论
采纳的回答
Walter Roberson
2011-5-9
if mod(UserVar,1) == 0
OR
if UserVar == fix(UserVar)
There are other possibilities, too. Last year in CSSM we listed off at least a dozen different ways.
0 个评论
更多回答(1 个)
Matt Fig
2011-5-9
A = [];
while 1
userVar = input('Enter an integer, (or return to quit): ');
if isempty(userVar)
break
elseif isnumeric(userVar) && fix(userVar)==userVar
A = [A userVar];
else
warning('Only integers are accepted.')
end
end
A % Show what user entered (optional)
%
%
%
EDIT Changed FLOOR to FIX for negative integers, thanks to Walter.
2 个评论
Walter Roberson
2011-5-9
floor vs fix wouldn't matter: you don't care which way a value gets rounded as long as the rounded value is not exactly equal to the original value except for integral values.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!