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에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!