While loop/ 05. Walking
https://pastebin.com/gkNz61QL
Дава ми 70%, 3 пъти runtime error. Но не виждам защо.
https://pastebin.com/gkNz61QL
Дава ми 70%, 3 пъти runtime error. Но не виждам защо.
Здравейте, на ред 10 задавате всички стъпки да се подава от конзолата (int totalSteps = 0;), а всъщност трябва да са равни на 0. С тази поправка дава 100 от 100.
package Exercise1002;
import java.util.Scanner;
public class Exercise1002 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int totalSteps = 0;
while (totalSteps < 10000) {
String input = scanner.nextLine();
if ( input.equals("Going home")){
int bonusSteps = Integer.parseInt(scanner.nextLine());
totalSteps += bonusSteps;
break;
}
int steps = Integer.parseInt(input);
totalSteps += steps;
}
if (totalSteps >= 10000){
System.out.println("Goal reached! Good job!");
}else{
System.out.printf("%d more steps to reach goal.",10000 - totalSteps);
}
}
}
Трбява да прекъснеш цикъла и когато стъпките са по-големи или равни на 10 000. Ето моето решение на Java :-) Успех
https://pastebin.com/ux4mKDdK
Мерси и за твоята помощ!
Здравей,
В началото (преди цикъла) totalSteps трябва да е равно на 0. После в цикъла получаваш стъпките и увеличаваш стойността на totalSteps.
Кодът ти само с тази промяна (totalSteps =0) дава 100 точки:
https://pastebin.com/u8pavHPc
Мерси!
Първоначално общо стъпките ти са = 0.
А ти започваш с парсване към инт на входа, който може да е команда, а не стъпки и да не може да се парсне. Какво правиш тогава? Помисли в тази посока.
Вярвам, че хинта който ти давам е достатъчен. Успех!
Определено ми е трудно. Но мисля, че бавно започвам да разбирам.
Мерси за хинта!
Ами като някаква основа е важно да знаеш поне за блоковете код, които пишеш. Един блок може да бъде цикъл, или иф проверка. Между къдравите скоби се осъществява някаква логика, наречи го пресмятане или намиране на частично и пълно решение на даден проблем. Именно между тези {......} къдрави скоби залагаш и своите променливи, с които ще си извършиш операциите. Има област на видимост на тези променливи и това е важно, защото трябва да можеш да ги използваш. Ако искаш да използваш променлива в даден блок (от къдрави скоби :))) ), тя трябва да е зададена не по-навътре от този блок. В този смисъл е важно къде и с каква стойност си декларираш променливите, защото те ще биха могли да се зануляват в определен момент, но и биха променяли стойността си според заложената ти логика вътре.
В твоя случай: ПРеди while -а трябва да заложиш сумата на стъпките ти да е 0. Към нея ще добавяш при определени условия вътре в цикъла.
Друго, върху което е добре да помислиш е четенето от конзолата:
int totalSteps = Integer.parseInt(scanner.nextLine());
Сигурно ли е, че това, което прочетем от конзолата(входа) е число и може да се парсне?
Ако прочетем думичка, как ще я парсне?
П.С. Не се тревожи, всички сме и минаваме през такива неща.. Ще се справиш... Ако не - ще ти пуснем едно решение, но се помъчи..
Колегите вече пуснаха решения. Но колкото и да е странно обяснението ти малко ми помага. Нищо че е в стил Windows за идиоти.
Е, ако не се справя, значи няма да се справя и толкова.
Мерси! Глупаво от моя страна!