Use <constant> == <value>This tip submitted by Webmaster on 2005-01-24 06:53:34. It has been viewed 25824 times.Rating of 5.3 with 214 votes When starting out, to avoid using a single equal sign instead of == to check equality, you can put the constant value on the left hand side: int a; cin>>a; if(3 == a) instead of int a; cin>>a; if(a == 3) In this way, if you accidentally write if(3 = a) then your compiler will generate an error about an "invalid lvalue", meaning that you can't assign the value of a to the number 3. (It already has a value.) Another way of avoiding this problem is to turn on all compiler warnings and look for something like: "suggest parentheses around assignment used as truth value" This indicates that the result of an assignment (e.g., a = 3) is being used to check for truth. In some cases, this is reasonable -- for instance, when reading characters: while((g = getchar()) != '\n') Since the value of an assignment is the value assigned to the variable, this will work as expected. (For the same reason, something like a = 3 will always be true because it will evaluate to 3. More tips Help your fellow programmers! Add a tip! |