While loop with multiple conditional statements not working

조회 수: 3 (최근 30일)
Mike
Mike 2012년 9월 5일
I created this while loop but when I input a fraction that should terminate the loop it doesn't exit the loop.
Ratio=1;
while (Ratio~=0 || Ratio~=(1/2) || Ratio~=1/3 || ...
Ratio~=1/5 || Ratio~=1/11 || Ratio~=5/7)
Ratio=(input('Enter a ratio (parts of milk)/(parts of coffee): '));
if (Ratio~=0 || Ratio~=1/2 || Ratio~=1/3 || ...
Ratio~=1/5 || Ratio~=1/11 || Ratio~=5/7)
disp('Invalid input');
end
end
  댓글 수: 2
Azzi Abdelmalek
Azzi Abdelmalek 2012년 9월 5일
format your code
Babak
Babak 2012년 9월 5일
How can your variable Ratio have multiple values at the same time?

댓글을 달려면 로그인하십시오.

채택된 답변

Image Analyst
Image Analyst 2012년 9월 6일
Just get rid of that problematic while/input way of doing it and do it like this:
button = menu('Enter the ratio (parts of milk)/(parts of coffee)', '0', '1/2', '1/3', '1/5', '1/11', '5/7')
switch button
case 1
ratio = 0;
case 2
ratio = 1/2;
case 3
ratio = 1/3;
case 4
ratio = 1/5;
case 5
ratio = 1/11;
case 6
ratio = 5/7;
end
fprintf('The user chose ratio = %f\n', ratio);
No while loop is needed because the user is not able to select a disallowed input.

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 9월 6일
편집: Azzi Abdelmalek 2012년 9월 6일
you will never quit the loop because:
if a~=1 | a~= 2
this expression is always true
maby you should write
if a~=1 & a~= 2

카테고리

Help CenterFile Exchange에서 Programming Utilities에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by