While loop with multiple conditional statements not working
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
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
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
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Programming Utilities에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!