Ноль больше или равен нулю оценивается как ложный

i = 0;
if(0 <= i <= 0) 

это возвращает ложь.

Я вообще этого не понимаю. Окно просмотра я также попытался сделать заявление читать (0 <= i && i <= 0) когда я проверяю их индивидуально 0 <= i возвращает ложное время i <= 0 возвращает истину. они оба должны быть правдой. Я не уверен, что это точная вещь, но я бы так не думал, так как я жестко кодирую значения. Пожалуйста, помогите мне понять эту фундаментальную проблему.

Если это помогает, я пытаюсь оценить, находится ли точка на линии, получая точку пересечения, а затем проверяя, находится ли она между начальной и конечной точками x и y. это становится проблемой, когда я пытаюсь проверить, когда x или y находится на своей оси, тогда вы сталкиваетесь с проблемой проверки, находится ли 0 между 0 или 0. Это так, что оно попадет на линию.

1 ответ

Цепочка реляционных операторов невозможна (для получения правильного результата согласно ожиданиям), вам нужно написать отдельную инструкцию для проверки каждого условия.

Из-за отсутствия явных скобок и связи LTR, заявление

  if(0 <= i <= 0) 

оценивается как

  if( (0 <= i) <= 0) 

который сводится к

  if ( 1 <= 0)

который производит 0, (ЛОЖЬ).

Тем не менее, претензия, касающаяся

Я также попытался сделать заявление читать (0 <= i && i <= 0) когда я проверяю их индивидуально 0 <= i возвращает ложное время i <= 0 возвращает истину. они оба должны быть правдой

это не правильно, они оба верны. Посмотреть на себя

Другие вопросы по тегам