Ноль больше или равен нулю оценивается как ложный
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
возвращает истину. они оба должны быть правдой
это не правильно, они оба верны. Посмотреть на себя