Trouble with infinite loop
Apr 9, 2016 at 6:45am
Can someone help me fix my infinite loop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#include <iostream>
using namespace std;
cin>> MM_Choice;
//do
//{
switch (MM_Choice)
{
case 'A':
case 'a':
addition();
break;
case'B':
case'b':
subtraction();
break;
case 'C':
case 'c':
multiplication();
break;
case 'D':
case 'd':
division();
break;
case 'Q':
case 'q':
quit();
break;
default:
cout << "Please enter a vaild choice" << endl;
cin >> MM_Choice;
//continue;
}//closes switch
//} while (MM_Choice != 'Q' || MM_Choice != 'q');
|
Apr 9, 2016 at 6:55am
You need to get new input before the switch statement, because MM_Choice is still whatever you first put into it.
Apr 9, 2016 at 7:11am
Trouble in multiple condition:
|
while (MM_Choice != 'Q' || MM_Choice != 'q');
|
Let's say MM_Choice is 'Q'. The first part is
false
, the second part is
true
Let's say MM_Choice is 'A'. The first part is
true
, the second part is
true
The logical OR operator
||
results in
true
if either or both operands are
true
No matter what the input here, the combined condition is
always true.
You need to change the operator to logical AND
&&
which will give true only when
both operands are true.
Apr 9, 2016 at 8:49am
Chervil Thank you that worked.
Topic archived. No new replies allowed.