2013-12-05 1 views
-3

Привет друзья У меня есть вопрос, чтобы определить id в java. почему это определить не так:Почему его неправильно в java:

if(0<=hours<24) 

но

if(0<=hours&&hours<24) 

верно.

+2

Каждый язык имеет свой собственный синтаксис. – kosa

+1

Потому что так работает язык. –

ответ

5

Первый разбирает, как

if((0<=hours)<24) 

или (к примеру, если был hours>= 0)

if(true<24) 

который является недействительным, как логическое значение не может быть меньше, чем Int.

Фактически, языки, на которые я не помню, кроме Python, допускают такой синтаксис.

1

Поскольку первое неравенство оценивается как булево. Таким образом, это становится,

if (true <= 24) 

В Java сравнение между булевыми и целыми числами не определено.

1

Это потому, что тип 0<=hours является boolean и оператор < не работает на boolean и int.

1

Первый синтаксически неверный. Если вы хотите сравнить переменную с двумя другими выражениями, у вас должен быть действительный оператор типа и (& &). Вот почему второй правильный.

if (0 <= hours && hours < 24) 

Вот вы говорите, если hours больше или равно 0 и в то же время КАТЕГОРИЧЕСКИ менее 24.