Loading...
stoian_delev avatar stoian_delev 4 Точки

05. Account Balance

Kak мога да избегна натискането на Enter;
Judge ми дава 20/100?
Моля за съдействие.




import java.util.Scanner;

public class AccountBalance {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String input=scanner.nextLine();
        double balance=0.0;

        while (!input.equals("NoMoreMoney")){
            double amount=Double.parseDouble(input);

            if(amount<0){
                System.out.println("Invalid operation!");
                break;
            }

            balance+=amount;
            System.out.printf("\nIncrease: %.2f",amount);
            input=scanner.nextLine();

        }
        System.out.printf("Total: %.2f",balance);

    }
}
Тагове:
0
Programming Basics
Hristiyan_Hristov avatar Hristiyan_Hristov 1 Точки

Здравей, колега.

В този scope, където печаташ, просто сложи %n, след като е свършил, реда.
Друга грешка не виждам.

}
    balance += amount;
    System.out.printf("Increase: %.2f%n", amount);
    input = scanner.nextLine();
}
0
stoian_delev avatar stoian_delev 4 Точки
import java.util.Scanner;

public class AccountBalance {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String input=scanner.nextLine();
        double totalMoney=0;

        while (!input.equals("NoMoreMoney")){
            double  currentAmount=Double.parseDouble(input);
            if(currentAmount<0){
                System.out.println("Invalid operation!");
                break;
            }
            totalMoney+=currentAmount;
            System.out.printf("\nIncrease: %.2f",currentAmount);
            input=scanner.nextLine();

        }

        System.out.printf("Total: %.2f",totalMoney);


    }
}

 

 

Judge 20/100;

 

 

0
donamtf avatar donamtf 9 Точки

 you so much for this. I was into this iss kodi ue and tired to   tinker around to check if its possible but couldnt get it done. Now that i have seen the way you did it, thanks guys
with
regards

0
VasilKos avatar VasilKos 17 Точки

AccountBalance - Pastebin.com

Това е кодът ми. Взимам 100 те то4ки, но не разбирам ред 5. Защо трябва да подам вътре в Whil-a: Double.parseDouble(input), а не Double.parseDouble(scanner.nextLine()). Нали са едно и също нещо???

 

  1. String input = scanner.nextLine();

  2. double sum = 0.0;

  3.  

  4. while (!input.equals("NoMoreMoney")) {

  5. double currentNum = Double.parseDouble(input); // not (scanner.nextLine()) !!! ???

  6. if (currentNum < 0) {

  7. System.out.println("Invalid operation!");

  8. break;

  9. }

  10. System.out.printf("Increase: %.2f%n", currentNum);

  11. sum += currentNum;

  12.  

  13. input = scanner.nextLine();

  14. }

  15. System.out.printf("Total: %.2f", sum);

0
svephoto avatar svephoto 1191 Точки

А ти лично как мислиш, защо в конкретния случай за конкретната задача трябва да го подадеш по този начин? И ако подадеш Double.parseDouble(scanner.nextLine()), би ли получил желания и правилен начин на работа на програмата?

0
16/09/2021 17:10:35
VasilKos avatar VasilKos 17 Точки

Здравей, о4евидно използването на Double.parseDouble(scanner.nextLine()  "4упи" кода. Вероятно с "input" присвояваме изцяло нова стойност, а с scanner.nextLine(), попадаме на инпут, на база последното завъртане на whil-a. Нямам то4но обяснение, но забелязах, 4е е тънък момент и при други зада4и. Така 4е малко разяснение ми е от полза.

0
svephoto avatar svephoto 1191 Точки

Здравей, VasilKos,

 

Само в конкретния случай при тази задача ще имаме проблеми, ако използваме Double.parseDouble(scanner.nextLine()), защото така се опитваме всеки един вход да го обърнем в дробно число, а на нас ни трябва първо да прочитаме поредната команда като стринг, понеже е нужно най-напред да проверим да не би тя да е "NoMoreMoney" и ако не е, чак тогава да обърнем входа към число. Ако всеки път прочитаме входа с Double.parseDouble(scanner.nextLine()), в един момент ще се опитаме да обърнем и "NoMoreMoney" в число и тогава вече ще получим грешка. Така че при тази задача задължително трябва първо да си прочитаме входа като стринг заради необходимата проверка и ако влезем в while цикъла, чак тогава обръщаме прочетния вход към число. Надявам се да ти става ясно от тези обяснения.

0
VasilKos avatar VasilKos 17 Точки

Благодаря, разбрах. 4етенето на входа при While циклите още ми е предизвикателство.

0
svephoto avatar svephoto 1191 Точки

Моля, полека-лека ще свикнеш и ще започнеш да се справяш, само постоянство ти трябва и да не се отказваш. laugh Успех! yes

0
Sanamiqbal avatar Sanamiqbal 1 Точки

VjjV. KAVSUB;"(₹;#!

​​​​​​​JSJSJZBBHSJXUXNBZHIZISBANJYDHKDKF VVNHCNFNGUFJFK

 

 

 

 

 

 

0
EvEmilov avatar EvEmilov 0 Точки

Здравей, тази команда Double.parseDouble(scanner.nextLine()) служи за четене от конзолата, а тази Double.parseDouble(input), понеже ти викаш числа под формата на текст, тази команда ти обръща числата от текст в число за да може да има последващи аритметични операции, ако използваш debug режим ще видиш че от примерно числото "100" което си въвел става 100 без "", тъй като ти викаш текст до получаване на NoMoreMoney и да приключи програмата.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.