Привет друзья У меня есть вопрос, чтобы определить id в java. почему это определить не так:Почему его неправильно в java:
if(0<=hours<24)
но
if(0<=hours&&hours<24)
верно.
Привет друзья У меня есть вопрос, чтобы определить id в java. почему это определить не так:Почему его неправильно в java:
if(0<=hours<24)
но
if(0<=hours&&hours<24)
верно.
Первый разбирает, как
if((0<=hours)<24)
или (к примеру, если был hours
>= 0
)
if(true<24)
который является недействительным, как логическое значение не может быть меньше, чем Int.
Фактически, языки, на которые я не помню, кроме Python, допускают такой синтаксис.
Поскольку первое неравенство оценивается как булево. Таким образом, это становится,
if (true <= 24)
В Java сравнение между булевыми и целыми числами не определено.
Это потому, что тип 0<=hours
является boolean
и оператор <
не работает на boolean
и int
.
Первый синтаксически неверный. Если вы хотите сравнить переменную с двумя другими выражениями, у вас должен быть действительный оператор типа и (& &). Вот почему второй правильный.
if (0 <= hours && hours < 24)
Вот вы говорите, если hours
больше или равно 0 и в то же время КАТЕГОРИЧЕСКИ менее 24.
Каждый язык имеет свой собственный синтаксис. – kosa
Потому что так работает язык. –