簡體   English   中英

有人可以幫我弄清楚為什么我不能調用我的方法嗎?

[英]Can someone help me figure out why i cant call my method?

我不知道為什么我不能調用我的方法。 我檢查了幾次,並嘗試運行它,但是它總是在我輸入錢值后立即結束。 它應該使用給定的金額(一百,五十,二十,十,五,五,單打,四分之一,角錢,五分之一和幾分錢)返回找零的金額。 因此,如果它是$ 42.55,則輸出將是“ 0 0 2 0 0 2 2 0 1 0”(兩個二十,兩個單打,兩個四分之一,一個鎳)。 先感謝您!

import java.util.Scanner;
public class MakeChange {
    public static void main(String arg[]) {
    Scanner readmoney = new Scanner(System.in);

    System.out.println("Money amount? >");
    double money = readmoney.nextDouble();
    System.out.println();

    String thing = makeChange(money);
}

public static String makeChange(double money) {

    int hundreds = (int) money/100;

    int fifties = (int)(money/50) - (2*hundreds);

    int twenties = (int) (money/20) - (5*hundreds) - (int)(2.5*fifties);

    int tens = (int)(money/10) - (10*hundreds) - (5*fifties) - (2*twenties);

    int fives = (int)(money/5) - (20*hundreds) - (10*fifties) - (4*twenties) - (2*tens);

    int singles = (int)(money) - (100*hundreds) - (50*fifties) - (20*twenties) - (10*tens) - (5*fives);

    int quarters = (int)(money/0.25) - (400*hundreds) - (200*fifties) - (80*twenties) - (40*tens) - (20*fives) - (4*singles);

    int dimes = (int)(money/0.1) - (1000*hundreds) - (500*fifties) - (200*twenties) - (100*tens) - (50*fives) - (10*singles) - (int)(2.5*quarters);

    int nickels = (int)(money/0.05) - (2000*hundreds) - (1000*fifties) - (400*twenties) - (200*tens) - (100*fives) - (20*singles) - (5*quarters) - (2*dimes);

    int pennies = (int)(money/0.01) - (10000*hundreds) - (5000*fifties) - (2000*twenties) - (1000*tens) - (500*fives) - (100*singles) - (25*quarters) - (10*dimes) - (5*nickels);

    String change = (hundreds + " " + fifties + " " + twenties + " " + tens + " " + fives + " " + singles + " " + quarters + " " + dimes + " " + nickels + " " + pennies);

    return change;

}}

 String thing = makeChange(money);
}
// end of program

您不是要打印結果。

該方法將被調用(並且不會因異常而崩潰)。

該方法被成功調用。 它返回一個結果,將其存儲在變量中,然后程序結束。 您實際上需要將返回值打印到控制台以顯示內容。

public static void main(String arg[]) {
    Scanner readmoney = new Scanner(System.in);

    System.out.println("Money amount? >");
    double money = readmoney.nextDouble();
    System.out.println();

    String thing = makeChange(money);
    System.out.println(thing);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM