将数字输入到公共浮点数组中

时间:2013-12-28 00:06:29

标签: java console-application

我需要用空格隔开两个花车,以便我可以在计算器中使用它们。我遇到以下错误。我想我必须首先初始化数组,但无论我做什么,我只是得到错误。输入应该是这样的:

输入两个以空格分隔的浮点数: 4.3 6.5

输入两个数字后,用户按Enter键。如果用户输入了除两个数字之外的其他任何内容,我将实现一个不允许输入的功能(“你只输入一个数字,请再试一次并输入两个:”然后它会再次提示用户输入两个数字。

Exception in thread "main" java.lang.NullPointerException

这两个与输入数字有关的类:

CalculatorMain类:

    public class CalculatorMain {
public static void main(String[] args) {
int OP; float num1, num2;
float result;
System.out.println("Welcome, " + System.getProperty("user.name") + ", to the Calculator application.");
System.out.println("Begin by entering the number of the operator you would like to use:\n");
CalculatorOperator.printOptions();
OP = CalculatorInput.getOP();
CalculatorInput.getNums();
num1 = CalculatorInput.inputs[0];
num2 = CalculatorInput.inputs[1];
result = CalculatorOperator.switcher(OP, num1, num2);
System.out.println("The result is:\n" + result + "\nWould you like to use the calculator again?");
}

}

CalculatorInput类:

    import java.util.Locale;
    import java.util.Scanner;
    public class CalculatorInput {
public static float[] inputs;

public static void getNums() {
    Locale.setDefault(Locale.US);
    Scanner in = new Scanner(System.in);
    System.out.println("Enter two floats seperated by a space:\n");
    while(in.hasNext()){
        for(int c = 0; c <=2; c++){
            inputs[c] = in.nextFloat();
        }
    }
    in.close();
}

public static int getOP() {
    int OP;
    Scanner inOP = new Scanner(System.in);
    OP = inOP.nextInt();
    inOP.close();
    return OP;
}
}

1 个答案:

答案 0 :(得分:2)

您需要初始化数组:

... float[] inputs = new float[2];

这应解决你的NullPointerException。

此外,您的for循环有错误的限制。它应该是从int c = 0c < 2,否则你将等待三个浮点数(0,1和2),而不是两个浮点数。