This is giving me a headache...can someone please tell me why these statements ARE NOT equivalent? ------------------------- The first statement works; the second does NOT. The second always evaluates to false. Why? Both of these vars are bools.
Maybe the problem is elsewhere.
#include <iostream>
int main()
{
bool a, b;
//Statement 1.)
a = false; b = false; std::cout << "a = " << a << ", b = " << b;
if ( a && b )
a = true;
else
a = false;
std::cout << ": a = " << a << std::endl;
a = false; b = true; std::cout << "a = " << a << ", b = " << b;
if ( a && b )
a = true;
else
a = false;
std::cout << ": a = " << a << std::endl;
a = true; b = false; std::cout << "a = " << a << ", b = " << b;
if ( a && b )
a = true;
else
a = false;
std::cout << ": a = " << a << std::endl;
a = true; b = true; std::cout << "a = " << a << ", b = " << b;
if ( a && b )
a = true;
else
a = false;
std::cout << ": a = " << a << std::endl;
std::cout << std::endl;
//Statement 2.)
a = false; b = false; std::cout << "a = " << a << ", b = " << b;
a &= b;
std::cout << ": a = " << a << std::endl;
a = false; b = true; std::cout << "a = " << a << ", b = " << b;
a &= b;
std::cout << ": a = " << a << std::endl;
a = true; b = false; std::cout << "a = " << a << ", b = " << b;
a &= b;
std::cout << ": a = " << a << std::endl;
a = true; b = true; std::cout << "a = " << a << ", b = " << b;
a &= b;
std::cout << ": a = " << a << std::endl;
std::cout << std::endl;
return 0;
}
/* my output
a = 0, b = 0: a = 0
a = 0, b = 1: a = 0
a = 1, b = 0: a = 0
a = 1, b = 1: a = 1
a = 0, b = 0: a = 0
a = 0, b = 1: a = 0
a = 1, b = 0: a = 0
a = 1, b = 1: a = 1
*/ Dave Sinkula
long time no c
Team Colleague
5,058 posts since Apr 2004
Reputation Points: 2,780
Solved Threads: 314