Differences Between C++ and Java

Question:
In C++, when a programmer intends to write:

   if (value == 1) {

But, they often make the following mistake:

   if (value = 1) {......

Why doesn’t this problem exist in Java?

Answer:
In C and C++ a non-zero value evaluates to a true boolean expressionand a zero value equates to false. Even though C++ has introducedthe bool type, this behavior is still supported. Therefore, if youaccidentally write the expression value = 1, it evaluatesto the integer value of 1, which represents a true boolean value.

Youcannot do this in Java because all boolean expressions must evaluateto a value of type boolean, either true or false. It is not possibleto coerce integer types to boolean types. Therefore, if you reallydo mean if(value = 1) in C/C++, you would have to writeif((value = 1) == 1) in Java. This makes you more likelyto write what you mean.

But the awkward transliteration of the C idiomactually makes it preferable in Java to just assign the value first, and then perform a test, such as:

value = foo;if(value == bar) {...}
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: