Предположим, вы говорите о целых числах:
if ( x == 2 ) { .... }
Есть немало маленьких кусочков Java, которые являются лучшим C ++ - в C или C ++ есть автоматическое преобразование между логическими значениями и целыми числами, поэтому в C ++:
int x = 5;
std::cout << std::boolalpha;
std::cout << ( 1 < x < 3 ) << std::endl;
std::cout << ( ( 1 < x ) < 3 ) << std::endl;
напечатает «true» дважды, так как ( 1 < x )
оценивает как 1, а 1 меньше 3. Java концентрируется на исправлении этой неоднозначности, анализируя два бинарных оператора, делая неконвертируемые булевы и целочисленные типы, поэтому вам нужно присоединиться к ним с другим оператором; другие языки не пытаются исправить C ++, но имеют более сложные правила синтаксического анализа, так что _ <_ <_ является троичным оператором, который делает правильные вещи. </p>