Need some assistance with "if" command

I'm trying to get my program to stop completely when given an invalid response after entering the side lengths. I've created the following:
a=input('Enter value for side a: ');
if a < 0
disp('Not a valid input.')
end
b=input('Enter value for side b: ');
if b < 0
disp('Not a valid input.')
end
c=input('Enter value for side c: ');
if c < 0
disp('Not a valid input.')

 채택된 답변

Geoff
Geoff 2012년 6월 28일
편집: Geoff 2012년 6월 28일

0 개 추천

If you don't have a function or anything to return from, there's a sneaky little trick you can use. This can be useful for other things too...
ok = false;
while 1
a=input('Enter value for side a: ');
if a < 0, break; end
b=input('Enter value for side b: ');
if b < 0, break; end
c=input('Enter value for side c: ');
if c < 0, break; end
ok = true;
break;
end
if ok
% Do your thing here....
else
disp('Not a valid input.');
end
Err... Bear in mind this isn't the best of programming practices. =)

추가 답변 (2개)

Geoff
Geoff 2012년 6월 28일

0 개 추천

Oh, the better way is to use the proper MATLAB error function:
if a < 0
error( 'Not a valid input.' );
end
Walter Roberson
Walter Roberson 2012년 6월 28일

0 개 추천

To get your program to stop completely you are going to need to use the command "quit", as anything else you can voluntarily do has the risk of being intercepted by a different level, such as by a try/catch block. "quit" will exit MATLAB.
Honestly, even "quit" might not be good enough, as I think "quit" would still end up running any registered onCleanup() routines rather than stopping the program completely. So possibly what you should do is write a little mex routine that deliberately dereferences an invalid pointer so that MATLAB crashes.

카테고리

도움말 센터File Exchange에서 Just for fun에 대해 자세히 알아보기

태그

질문:

2012년 6월 28일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by