Умные весы

Прохожу 3 проверки из 4. Потом выдает ошибку переменная не определена, хотя первых три теста с этой переменной прошли успешно, значение из 4 теста подставляю в ручную всё срабатывает нормально, подскажите что не так?

var weight = 5.6;
var recommendation;

if (weight < 4) {
  recommendation = 'Пора перекусить';
  console.log (recommendation.toString());
}

if (weight > 4 && weight <= 5.5 ) {
  recommendation = 'Вес в норме';
  console.log (recommendation.toString());
}

if (weight > 5.5) {
  recommendation = 'Пора на тренировку';
  console.log (recommendation.toString());
}

/*
Мяу! Запрограммируй умные весы, чтобы они давали рекомендации в зависимости от веса.
Вес записан в переменную weight.
Рекомендацию записывай строкой в переменную recommendation.
Если вес до 4 кг (не включая это значение), рекомендация – ‘Пора перекусить’.
Если вес от 4 кг включительно до 5.5 кг включительно – ‘Вес в норме’.
Если вес больше 5.5 кг – ‘Пора на тренировку’.
*/

Посмотрите внимательно. Ваши условия не учитывают вариант, когда вес равен 4.

1 лайк

Спасибо. Одно = не хватало в условии )

Ещё такой вопрос, если позволите.
console.log (recommendation.toString()); тут можно не писать .toString() если переменная явно строка?

Да, могли не писать.

1 лайк

В console.log вообще нет необходимости приводить к строке, за исключение наверное только когда нужно узнать тип объекта

Мой вариант :lion:

Умные весы
console.log('Программа : Умные весы');

var weight = 5;
var recommendation;

if (weight < 4) {
  recommendation = 'Пора перекусить';
}else if (weight >= 4 && weight <= 5.5) {
  recommendation = 'Вес в норме';
}else {
  recommendation = 'Пора на тренировку';
}

console.log(recommendation + ' , Сэр');
2 лайка

image

Ещё один вариант (Условное ветвление: if, '?') :

let weight = 5;
let recommendation = (weight < 4 ) ? 'Пора перекусить':
                     (weight >= 4 && weight <= 5.5) ? 'Вес в норме':
                     'Пора на тренировку';
1 лайк