Вопрос по оператору условия if (Хольцнер страница 58)

Можете прокомментировать и ответить почему температура "некомфортна"

   /*Ответ не правильный*/
  /*Хольцнер страница страница 58*/
     $temperature = 35;
     if (($temperature >= 25)&&($temperature <= 30))
     {
         echo ("Температура комфортна");
    }
    else
    {    
        echo ("Температура некомфортна");
    }

Key Words for FKN + antitotal forum (CS VSU):

sid's picture

Потому что, заданное значение переменной не попадает в диапазон проверяемый в условии.

vedro-compota's picture

этот код выдаст:

Температура некомфортна

т.е. если утверждается, что:

почему температура "Комфортна"

то это действительно ошибка.
Для сообщения о конфортности "быстрое И" надо заменить на "быстрое ИЛИ":

$temperature = 35;
   if (($temperature >= 25) || ($temperature <= 30))
   {
       echo ("Температура комфортна");
  }
  else
  {    
      echo ("Температура некомфортна");
  }

_____________
матфак вгу и остальная классика =)

gani84's picture

Получается опечатка??

melisa's picture

В Хольцнере, стр.58, результат "температура некомфортна". Опечатки нет.

vedro-compota's picture

Чтобы понимать почему код работает так а не иначе, надо понимать разницу между операторами:

  • &
  • |
  • &&
  • ||

есть такое понимание? чем они отличаются?

_____________
матфак вгу и остальная классика =)

gani84's picture

Получается не совсем(

Voronve's picture

Дело в том, что в данном случае сработало условие оператора else. В операторе if указано, что температура комфортна при двух условиях ( и только если выполняются они оба, за это отвечает оператор &&) - если температура больше или равна 25 и если она меньше или равна 30. В нашем случае одно из условий (второе)не выполнено - температура больше 30.

gani84's picture

Спасибо я понял!!!