НЕ РАБОТАЕТ ПРОВЕРКА: Второй тест. Время 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 >= 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;
}
}
Основная ошибка была в первом условии вместо && между двумя условиями || надо было, но все остальное с включительно, не включительно не оч ясно было поставлено все же на мой взгляд
Некорректная формулировка тестов. По условиям задания значение 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;
}
}
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;
}
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;
}