Tworzę kalkulator monet, który przerywa wartość grosza w dół do wyznań, ale chcę, aby użytkownik mógłby wykluczyć denominację monety, zobacz mój kod poniżej. Prowadzę tu do ściany tutaj i walcząc, aby myśleć o kodzie, który pozwoliłby temu, jeśli ktoś ma wskaźnik, naprawdę to doceniłbym. Nie mam problemu z tworzeniem kodu, w którym użytkownik może wybrać, który denominacja obejmuje.

    int money;
        int denom;
        Scanner sc=new Scanner(System.in);
        System.out.println("Please enter the amount of coins you have in penny value");
        money = sc.nextInt();
        System.out.println("Also the denomiation you would like exclude; 2, 1, 50p, 20p, 10p");
        denom = sc.nextInt();
        while (money > 0){
            if (money >= 200) {
                System.out.println("£2");
                money -= 200;
            }
            else if (money >= 100) {
                System.out.println("£1");
                money -= 100;
            }
        else if (money >= 50) {
            System.out.println("50p");
            money -= 50;
            }
        else if (money >= 20) {
            System.out.println("20p");
            money -= 20;
            }
        else if (money >= 10) {
            System.out.println("10p");
            money -= 10;
        }       
        else if (money >= 1) {
            System.out.println("1p");
            money -= 1;
        
    }
2
mike123 21 listopad 2020, 19:03

1 odpowiedź

Najlepsza odpowiedź

Powiedziałbym, że jest to prawdopodobnie najbardziej podstawowy sposób działania bez tworzenia oddzielnej metody. Ustawianie denomu do wartości wykluczonej, a następnie sprawdzenie, czy moneta jest równa denomowi, zanim odejmowanie może działać, ponieważ tak nie ma wielu monet.

int money;
        int denom;
        Scanner sc=new Scanner(System.in);
        System.out.println("Please enter the amount of coins you have in penny value");
        money = sc.nextInt();
        System.out.println("Also the denomiation you would like exclude; 2, 1, 50p, 20p, 10p");
        String input = sc.next(); //saving user input as a string
        if (input.contains("p"))
        { //converting string to int by removing the p 
            denom = Integer.parseInt(input.substring(0, input.indexOf("p")));
        }
        else
        { //if there's no p, multiply its value by 100
            denom = Integer.parseInt(input) * 100;
        }
       
        while (money > 0){
            if (money >= 200 && denom != 200) {
                System.out.println("£2");
                money -= 200;
            }
            else if (money >= 100 && denom != 100) {
                System.out.println("£1");
                money -= 100;
            }
            else if (money >= 50 && denom != 50) {
                System.out.println("50p");
                money -= 50;
                }
            else if (money >= 20 && denom != 20) {
                System.out.println("20p");
                money -= 20;
                }
            else if (money >= 10 && denom != 10) {
                System.out.println("10p");
                money -= 10;
            }       
            else if (money >= 1) {
                System.out.println("1p");
                money -= 1;
        
            }
        }
0
Sankeeth Ganeswaran 22 listopad 2020, 01:58