5. Walking
Може ли някой да ми обясни защо получавам 0 /100 при условие че всички тестове във файла със задачите за верни.
Получавам грешка Runtime error.
import java.util.Scanner; public class Steps { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int goal = 10000; int sum = 0; while (true) { String steps = scanner.nextLine(); if (!"".equals(steps)) { if (!"Going home".equals(steps)) { int num = Integer.parseInt(steps); sum += num; } else { sum += 0; } } else { break; } } if (sum >= goal) { System.out.println("Goal reached! Good job!"); } else { System.out.printf("%d more steps to reach goal.", (int) (goal - sum) ); } } }
Забелязах това поведение и точно в тази посока започнах да дълбая.
На какво се дължи това поведение. Обяснявам си го че скенера не е празен просто не съдържа стойност. Blank vs Null?
От където се чете input всичко след 200 е blank?
Да разбирам ли че continue прави още една итерация?
1500
300
2500
100
Going home
200
15000
този тест връщя още 5400 крачки .
Разбрах какво се случва. прави една итерация защото lastStep вече е усвоила стойност true, иначе continue ще ни връща в началото на цикъла докато това не се случи.
Да, така е за continue, просто пропуска тази итерация и продължава със следващата, но понеже lastStep вече е истина, излиза от цикъла.
а защо така се държи - виж входовете:
Следващият е:
Има един празен ред в края на всеки от 4-те нулеви теста.