我试图找出一种方法,以最有效的方式将货币价值分成四分之一,硬币,镍币和硬币。这是我目前的代码:
public class CoinReader {
private static int amount = 0;
public static void main(String[] args) {
amount = (int)(Double.parseDouble(args[0])*100);
System.out.println("Five: " + computeCoin(500));
System.out.println("one: " + computeCoin(100) );
System.out.println("Q : " + computeCoin(25) );
System.out.println("D : " + computeCoin(10) );
System.out.println("N : " + computeCoin(5) );
System.out.println("P : " + computeCoin(1) );
}
public static int computeCoin(int cointValue) {
int val = amount / cointValue;
amount -= val * cointValue;
return val;
}
}
我目前正在获取一个数组索引超出范围的异常,我知道它与String数组和数量变量有关,但我正在尝试了解数组,我正在尝试让这个程序工作。任何帮助,将不胜感激。感谢。
答案 0 :(得分:0)
args
数组为空,没有索引为0的元素。您必须将一个命令行参数传递给您的程序。从命令行运行时,请确保将数值作为参数传递,如下所示:
java CoinReader 113.25
答案 1 :(得分:0)
您正在使用args[0]
,而args似乎是空的。
您如何致电您的计划?您必须忘记传递参数。
答案 2 :(得分:0)
它运行:
javac CoinReader.java
java CoinReader 1230
输出继电器
Five: 246
one: 0
Q : 0
D : 0
N : 0
P : 0
让它正常工作:-P
编辑:
正如其他人已经提到的,参数String args[]
指的是在运行已编译的程序时在命令行上提供的参数。当你没有提供参数时,你会得到ArrayOutOfBondsException
,因为数组将是空的。
当我说有乐趣让它发挥作用我的意思是你的computeCoin
方法似乎有错误,因为它不会输出P,N,D和Q的结果。但这是超出你的初步问题。
第二次编辑:
它不只是运行。它运行得很好。
java CoinReader 10.11
输出:
Five: 2
one: 0
Q : 0
D : 1
N : 0
P : 1