Класс if выполняется классически для сравнения 2 операторов. Если вы хотите сравнить более 2 операторов, вам следует использовать логическое ИЛИ ||
или логическое И &&
.Причиной этого является логическая логика.Выражение, которое вы разместили в первой программе, оценивает слева направо, что означает
if (8 >7)>6
Если 8 больше 7 (что оно есть), оно будет оцениваться как true, что равно «1» в булевой логике (1 - истина, 0 - ложь).Таким образом, после этой оценки у вас есть:
if (1 > 6)
, что естественно оценивается как ложное.Поскольку сравнение больше не 8/7/6, оно истинно / 6. И в этом случае true меньше 6, а значит, и false.
Если бы вы настроили его таким образом, было быожидаемые результаты:
if (8 > 7 && 7 > 6)//Do stuff
или, наоборот, если вы хотите быть исчерпывающим ..
if (8 > 7 && 7 > 6 && 8 > 6)
, чтобы все числа сравнивались (это было бы более разумно, если выимел 3 переменные, возможно, где x должен быть равен 100, y должен быть равен 50, а z должен быть равен 25.)
Тогда вы получите сравнение
if (x > y && y > z && x > y) //do stuff
Это будет иметь значение true в том случае, если ваши переменные имели ожидаемое содержимое.