Java 如何把钱兑换成零钱
尝试将输入的数字转换为25美分、5美分、10美分和1美分。有一些问题:Java 如何把钱兑换成零钱,java,Java,尝试将输入的数字转换为25美分、5美分、10美分和1美分。有一些问题: public class Coins { public static void main(String[] args){ private int quarters, dimes, nickels, pennies; public void CoinsToChange(TotalCoins){ quarters = (int)(TotalCoins/25); TotalCoins %= 25;
public class Coins {
public static void main(String[] args){
private int quarters, dimes, nickels, pennies;
public void CoinsToChange(TotalCoins){
quarters = (int)(TotalCoins/25);
TotalCoins %= 25;
dimes = (int)(TotalCoins/10);
TotalCoins %= 10;
nickels = (int)(TotalCoins/5);
TotalCoins %= 5;
pennies = (int)(TotalCoins/1);
TotalCoins %= 1;
System.out.println("Quarters = " + quarters + "\nDimes = " + dimes + "\nNickels = " + nickels + "\nPennies = " + pennies);
}
}
}
这是我的tester类:(调用CoinsTotChange方法时遇到问题。)
}尝试更改操作顺序。在声明/实例化对象/变量之前,通常不能使用该对象/变量
Coins money = new Coins();
Scanner kybd = new Scanner(System.in);
int changeMoney = kybd.nextInt();
money.CoinsToChange(changeMoney);
有很多语法问题,但您的总体计算是正确的。试着这样做:
public class Coins {
public static void main(String[] args) {
Scanner kybd = new Scanner(System.in);
int totalPennies = kybd.nextInt();
printMoneyAsChange(totalPennies);
}
public static void printMoneyAsChange(int pennies) {
int quarters = pennies / 25;
pennies %= 25;
int dimes = pennies / 10;
pennies %= 10;
int nickels = pennies / 5;
pennies %= 5;
System.out.println(String.format("Quarters = %d\nDimes = %d\nNickels = %d\nPennies = %d", quarters, dimes, nickels, pennies));
}
}
这些就是问题:
- 在Coins类中,您尝试将所有内容封装在main方法中。您需要分别声明方法和变量,然后在main方法中调用它们。
- 与其在Coins类中创建主方法,不如在tester类中创建主方法。
- 使用参数声明方法时,需要指定类型。因此,它应该是
,而不是public void CoinsToChange(inttotalcoins)
public void CoinsToChange(inttotalcoins)
- 最后,在tester类中,在
int changeMoney=kybd.nextInt()中声明和分配
之前,您调用了changeMoney
。你需要把那条线放在后面而不是前面money.CoinsToChange(changeMoney)
public class Coins {
private int quarters, dimes, nickels, pennies;
public void CoinsToChange(int TotalCoins) {
quarters = (int) (TotalCoins / 25);
TotalCoins %= 25;
dimes = (int) (TotalCoins / 10);
TotalCoins %= 10;
nickels = (int) (TotalCoins / 5);
TotalCoins %= 5;
pennies = (int) (TotalCoins / 1);
TotalCoins %= 1;
System.out.println("Quarters = " + quarters + "\nDimes = " + dimes
+ "\nNickels = " + nickels + "\nPennies = " + pennies);
}
}
测试仪等级:
import java.util.Scanner;
public class CoinsTester {
public static void main(String[] args) {
Coins money = new Coins();
Scanner kybd = new Scanner(System.in);
int changeMoney = kybd.nextInt();
money.CoinsToChange(changeMoney); // This line needs to be at the bottom
}
}
注意:其他一些答案也为您提供了一些很好的建议,涉及更好的变量名和字符串格式的使用。最好接受他们的建议。我特别想解决编译器错误。据我所见,所提供的代码存在大量问题 在您的第一个代码示例中,您将在中引入函数声明和私有字段 公共静态void main(字符串[]args){} ,因此您的类将不会编译,因此您将无法从其他类中使用它 然后,在将变量声明为@Tank(在他的回答中建议的)之前,您正在使用该变量
坚持公认的命名约定和格式也是一种很好的做法 你说你有问题,但你没有说问题是什么。在我看来,这不像是JavaScript,重新标记它。这个“公共void CoinsToChange(TotalCoins)”甚至不应该用java编译
import java.util.Scanner;
public class CoinsTester {
public static void main(String[] args) {
Coins money = new Coins();
Scanner kybd = new Scanner(System.in);
int changeMoney = kybd.nextInt();
money.CoinsToChange(changeMoney); // This line needs to be at the bottom
}
}