simple while loop

Newbie Member
1Feb2008,14:32   #1
free2rhyme2k's Avatar
Hi there

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


Code:
std::string question = q.quest().que();
            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)) { 
                       random_shuffle(opt.begin(),opt.end()); 
                            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
TechCake
7Feb2008,13:57   #2
asadullah.ansari's Avatar
wrong logic!!!
Newbie Member
7Feb2008,18:46   #3
logical_brain's Avatar
Code:
while((answer != english1) || (answer != english2))
Think over this code.
let answer != english1 is X
and answer != english2 is Y

Code:
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

Regards