Testing for equality is a little trickier. You would expect to test
if two numbers are equal by using the = sign. However the = sign
has already been used as an assignment operator that sets the value
of a variable. Therefore a new symbol is needed to test for
equality. Java borrows C's double equals sign, ==
, for
this purpose.
It's not uncommon for even experienced programmers to write
==
when they mean =
or vice versa. In
fact this is a very common cause of errors in C programs.
Fortunately in Java, you are not allowed to use ==
and
=
in the same places. Therefore the compiler can catch
your mistake and make you fix it before you can run the
program.
However there is one way you can still get into trouble:
boolean b = true;
if (b = false) {
System.out.println("b is false");
}
To avoid this, some programmers get in the habit of writing condition tests like this:
boolean b = true;
if (false = b) {
System.out.println("b is false");
}
Since you can't assign to a literal, this causes a compiler error
if you misuse the =
sign when you mean to write
==
.