在while循环的参数中使用hashMap.get()时在Java中出现问题

时间:2018-10-26 17:23:23

标签: java nullpointerexception hashmap

今天,我正在用Java做一个简单的练习,遇到了一个我不理解的非常简单的问题。我需要计算最小的硬币数量,我可以在其中分配给定的零钱。

我决定使用HashMaps进行此操作,我将代码粘贴到了下面。

import java.util.Scanner;
import java.util.HashMap;


public static void main(String[] args) {

Scanner input = new Scanner(System.in);
HashMap<Integer, Double> coinMap = new HashMap<Integer, Double>();
int index = 1;
int count = 0;

coinMap.put(1, 2.00);
coinMap.put(2, 1.00);
coinMap.put(3, 0.50);
coinMap.put(4, 0.20);
coinMap.put(5, 0.10);
coinMap.put(6, 0.05);
coinMap.put(7, 0.02);
coinMap.put(8, 0.01);

double change = Double.parseDouble(input.nextLine());

while (change > 0.00){

    while(coinMap.get(index) > change){
        index++;
    }
    change = change - coinMap.get(index);
    count++;
}

System.out.println(count);

当我使用输入1.23执行程序时,出现以下错误

Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:28)

Process finished with exit code 1

第32行是嵌套的while循环,在这里我使用hashMap.get()方法。为什么会这样?

0 个答案:

没有答案