ckt221
ckt221

Reputation: 1

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

I can't figure out why I can't call my method. I checked it over a few times and tried running it, but it always ends right after I enter a value for the money. It's supposed to return the amount of change for a given amount of money, using hundred, fifties, twenties, tens, fives, singles, quarters, dimes, nickels, and pennies. So if it was $42.55, the output would be "0 0 2 0 0 2 2 0 1 0" (two twenties, two singles, two quarters, one nickel). Thank you in advance!

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;

} }

Upvotes: 0

Views: 94

Answers (2)

metacubed
metacubed

Reputation: 7271

The method gets called successfully. It returns a result, stores it in the variable, and then the program ends. You need to actually print the return value to the console in order to show something.

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);
}

Upvotes: 0

Thilo
Thilo

Reputation: 262474

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

You're not printing your result.

The method gets called (and does not crash with an exception).

Upvotes: 4

Related Questions