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-те нулеви теста.