2013-11-27 2 views
0

Что отсутствует в следующем коде?Логический оператор Упражнение в кодекадемии: ударить стену

Я продолжаю пытаться варианты, и я в тот момент, когда я пытаюсь сделать нелогичные изменения просто из-за отсутствия лучших идей. Проблема заключается в синтаксисе функции? Лучше я понимаю, что переменные глобальны, и оба ДОЛЖНЫ читать как ИСТИНА. В зависимости от того, как я структурирую функцию, я могу получить значение TRUE AND FALSE или false, но если я правильно понимаю синтаксис логического оператора, только один результат должен выводиться на true - когда обе переменные истинны. Поэтому, как я поставил их так, я немного озадачен Почему считывание получает значение False [введите описание изображения здесь] [1]

// Declare your variables here! 
var foodHere=true; 
var hungry=true; 

var eat = function() 
{ 
if (hungry&&foodHere) 
{ 
     console.log ("True."); 
} 
else 
{ 
     console.log("False."); 
    } 
}; 

// Сообщение об ошибке гласит:.! Похоже, ваша функция не возвращает false, когда голодный ложь.

Я бы разместил изображение, но, судя по всему, моей репутации не хватает.

+0

Заменить 'console.log ('false');' with 'return false' – vonUbisch

+1

' Похоже, ваша функция не возвращает false, когда голодный ложь'; ваша функция не возвращается *** ничего. Попробуйте добавить оператор return; например 'return false;' или 'return true;' в правой части кода. – Matt

ответ

2

CodeAcademy хочет, чтобы вы с возвращали логическое значение, тогда как вы просто регистрировали строку «True» или «False» на консоли. Измените его на что-то вроде:

var eat = function(){ 
    return (hungry && foodHere); 
} 

или в вашем случае:

var eat = function() 
{ 
    if (hungry&&foodHere) 
    { 
      return true; 
    } 
    else 
    { 
      return false; 
    } 
}; 

См this JSFiddle example.

Смежные вопросы