simple while loop

free2rhyme2k's Avatar, Join Date: Feb 2008
Newbie Member
Hi there

I am writing a simple while loop which terminates on the condition that a certain value is found, as follows

std::string question =;
            std::string answer = q.ans().answer();
            std::string graphic = q.inf().info();
            std::string english1;
            std::string english2;
            std::string arabic1;
            std::string arabic2;
            while((answer != english1) || (answer != english2)) { 
                            english1 = opt[0].english();
                            arabic1 = opt[0].arabic();
                            english2 = opt[1].english();
                            arabic2 = opt[1].arabic();

The program gets stuck in the while loop. I guess this is some sort of error in the while loops condition. If I take out the second condition and make it just based upon “English1”, then it works fine.

Any help?

Thanks in advance
asadullah.ansari's Avatar, Join Date: Jan 2008
wrong logic!!!
logical_brain's Avatar
Newbie Member
while((answer != english1) || (answer != english2))
Think over this code.
let answer != english1 is X
and answer != english2 is Y

Possible combination
X   Y   Result
0   0    0
0   1    1
1   0    1
1   1    1
Only condition when while loop breaks is When Result is 0 Which is only possible when answer = english1 and answer = english2 (Think how it can be possible)

TRy to change you while loop test condition