Conditional Statements Advanced - Lab / 11. Fruit Shop
Резултатът е нула а judge очаква празен.
''При нула да не се отпечатва'' не е отбелязано в задачата !
Резултатът би трябвало да е "error"
94%
Резултатът е нула а judge очаква празен.
''При нула да не се отпечатва'' не е отбелязано в задачата !
Резултатът би трябвало да е "error"
94%
Тествал ли си твоето решение с невалидни едновременно плод и ден? Например:
fruitShop2(["tomato", "Workday", "3"]);
На изхода получаваш 2 пъти "error" вместо 1 път. Предполагам, че тест 18 прави точно това. Най-бързото разрешаване на проблема при твоя вариант за решение е да сложиш по един return; на двете места, на които печаташ "error":
else {
console.log("error");
return;
}
Така и последният тест ще мине. И накрая няма нужда от проверката if (price !== 0), можеш да я махнеш.
Ахаа.
Просто слагам return след конзол лога?
Какво връща обаче? Един вид, какво се случва когато има ретърн?
Нещо си преебах дегъга вчера, но гледам днес работи.
if (price !== 0) е защото ми връщаше 0 и го отчита като грешка.
Ще коментирам себе си :)
""Проблемът в случая е че не виждам какъв е проблемът за да си го оправя сам.
Джъдж не работи винаги добре. Забелязах и други случаи.
Ако знам какъв точно е проблемът ще търся решение поне.
Някаква идея защо джъдж не дава инфо понякога?""
Благодаря много :)
Да, return след console.log() - и на двете места, на които трябва да отпечаташ error при невалиден плод или ден, или и двете. Трябва да има return, защото ако няма, при едновременно невалидни плод и ден вместо веднъж, ще се отпечата 2 пъти error (понеже и при двете проверки - и за плод, и за ден, ще влезеш в else-a накрая). В случая return прекратява изпълнението на програмата, не връща нищо.
Относно работата на Judge - повечето тестове умишлено са скрити, понеже така на нас се оставя да мислим за покриването на всички възможни случаи, вкл. и граничните.
Значи, ретърн е като брейк в случая. Ок. разбирам.
Относно работата на Judge: Звучи... като екстра работа за всички :)
Не е като break, защото нямаш цикъл, а break обикновено се използва вътре в даден цикъл за излизане от него. Ако тук сложиш break вместо return ще получиш грешка: Uncaught SyntaxError: Illegal break statement.