Путь к молоку

НЕ РАБОТАЕТ ПРОВЕРКА: Второй тест. Время 7. Ожидаю результат: На молокозавод: false, в магазин: false, на рынок: false

Ваше значение goToDairy равное false совпадает с ожидаемым значением.
Ваше значение goToStore равное false совпадает с ожидаемым значением.
Ваше значение goToMarket равное true совпадает с ожидаемым значением.

Как такое может быть?

Третий тест. Время 15. Ожидаю результат: На молокозавод: true, в магазин: false, на рынок: true

Ваше значение goToDairy равное false не совпадает с ожидаемым значением true.
Ваше значение goToStore равное false совпадает с ожидаемым значением.
Ваше значение goToMarket равное true не совпадает с ожидаемым значением false.

Или это? В этом случае он должен на завод идти?

Вообще по условию как я его понял он должен идти в ближайшую точку, а это завод если время с 8 включительно до 19 включительно кроме обеда с 13 до 14,
тогда он идет в магазин с 13(включительно) до 14, ровно в 14 он только на рынок может попасть, т.к. завод еще закрыт, а магазин уже закрыт,
с 7 включительно до 8 и с 19 до 20 включительно он может попасть на рынок. Правильно ли я все понял?

var goToDairy = false;
var goToStore = false;
var goToMarket = false;

if ( time >= 7 && time <= 20) {
goToMarket = true;
if ( (time >= 8 && time <= 19) && ( time < 13 && time > 14 ) ) {
goToMarket = false;
goToDairy = true;
}
if ( time > 13 && time < 14 ) {
goToMarket = false;
goToStore = true;
}
}

но мое решение не проходит проверку.
прошу помощи

if((time >= 8 && time < 13) || (time < 19 && time > 14)){
goToDairy=true;
сам помучился,пока не выстроил логику через или(||) главное разбить на правильные промежутки(с 8 до 13)(с 14 до 19) и если время попадает в один из них срабатывает if

if ( (time >= 8 && time <= 19) && ( time < 13 && time > 14 ) ) но тут же тоже самое по идее: число в диапазоне от 8 до 19, но от 13 до 14.

Модифицировал код, теперь работает
if ( time >= 7 && time <= 20) {
goToMarket = true;
if ( (time >= 8 && time < 19) && ( time < 13 || time > 14 ) ) {
goToMarket = false;
goToDairy = true;
}
if ( time >= 13 && time < 14 ) {
goToMarket = false;
goToStore = true;
}
}

Основная ошибка была в первом условии вместо && между двумя условиями || надо было, но все остальное с включительно, не включительно не оч ясно было поставлено все же на мой взгляд

у меня весь код в 6 строк уложился :grinning:

Некорректная формулировка тестов. По условиям задания значение true должно быть записано в одну переменную. А в тексте ожидаемых значений теста почему-то бывает и два.
При этом проверка проходится, если значение true только одно.

Пример кода
var time = 15;

var goToDairy = false;
var goToStore = false;
var goToMarket = false;

if (time >= 7 && time <= 20) {
  if (time >= 8 && time < 13 || time >= 14 && time < 19) {
    goToDairy = true;
  }
  else if (time >= 9 && time < 14 || time >= 15 && time < 17) {
    goToStore = true;
  }
  else {
    goToMarket = true;
  }
} 

Просьба @GreenLera прокомментировать этот момент.

2 лайка

это опечатка, сейчас исправлю, спасибо!

готово, проверяйте

1 лайк

Мой код прошел 2 раза проверку

if (time >= 8 && time < 19 && time !== 13 && time !== 14 ) {
goToDairy = true;
} else if (time >= 9 && time < 17 && time !== 14 && time !== 15) {
goToStore = true;
} else if (time >= 7 && time < 20) {
goToMarket = true;
} else {
goToDairy = false;
goToStore = false;
goToMarket = false;
}

time !== 13 && time !== 14

time !== 14 && time !== 15

это работает в данной задаче, но мы все же период времени рассматриваем с 13 до 14 или с 14 до 15, а у Вас только отдельные часы берутся

if (time > 8 && time< 13 || time > 14 && time < 19) {goToDairy = true}
 
 else if (time > 9 && time < 14 || time>15 && time < 17) {goToStore = true}
     
  else if (time >= 7 && time <= 20) {goToMarket = true}

Форматируйте код перед отправкой сообщения, пожалуйста.
Кнопка </> в редакторе сообщений.

OK , пасиб !!!

if(time>=8 && time<19 && !(time>=13 && time<=14))
{goToDairy=true;}
else if(time>=9 && time<17 && !(time>=14 && time<=15))
{goToStore=true;}
else if(time>=7 && time<20){goToMarket=true;}

var time = 19;

var goToDairy = false;
var goToStore = false;
var goToMarket = false;

if ((time > 7 && time < 13) || (time > 14 && time < 19)) {
  console.log('Иди в молокозавод'),
  goToDairy = true;
} else if ((time > 8 && time < 14) || (time > 15 && time < 17)) {
  console.log('Иди в магаз'),
  goToStore = true;
} else if (time > 6 && time < 20) {
  console.log('Иди на рынок'),
  goToMarket = true;
}

if (time >= 7 && time <8 || time >=19 && time <20) {
goToMarket = true;
}
if (time >=13 && time < 14) {
goToStore = true;
}
if (time >=8 && time < 13 || time >= 14 && time < 17) {
goToDairy = true;
}

if (time >= 8 && time < 13 || time >= 14 && time < 19) {
goToDairy = true;
} else if (time >= 9 && time < 14 || time >= 15 && time < 17) { goToStore = true;
} else if (time >= 7 && time < 20) { goToMarket = true;}

if (time >= 8 && time < 13 || time >= 14 && time < 19) {
goToDairy = true;
} else if (time >= 9 && time < 14 || time >= 15 && time < 17) {
goToStore = true;
} else if (time >= 7 && time < 20) {
goToMarket = true;
}

var time = 15;

var goToDairy = false;
var goToStore = false;
var goToMarket = false;

if (time >= 8 && time < 19 && time != 13 && time != 14) {
	goToDairy = true;
}
if (time == 13 || time == 14 && time != 14 && time != 15) {
	goToStore = true;
}
if (time >= 7 && time <= 8 || time >= 19 && time <= 20) {
    goToMarket = true;
}

var time = 15;

var goToDairy = false;
var goToStore = false;
var goToMarket = false;

if ((time>8 && time<13)||(time>14 && time<19)){
goToDairy=true}
if (time>=13 && time<14){
goToStore=true}
if ((time>=7 && time<8)||(time>13 && time<15) || (time>=19 && time<20)) {
goToMarket=true}