线程" main"中的例外情况java.lang.ArrayIndexOutOfBoundsException:0在Calculator.main(Calculator.java:25)

时间:2017-09-23 20:09:41

标签: java

我为简单的计算器编写了这段代码,我收到了这个错误!有人帮帮我!

public class Calculator { 

  public static void main (String[] args) {

    int num1 = Integer.parseInt(args[0]);
    int num2 = Integer.parseInt(args[1]);
    int sum = num1 + num2;
    int sub = num1 - num2;  
    int prod = num1 * num2;
    int quot = num1 / num2;
    int rem = num1 % num2;

    // print the other variables, sub, prod, quot, rem;     
    System.out.println(num1 + " + " + num2 + " = " + sum);      
    System.out.println(num1 + " - " + num2 + " = " + sub);      
    System.out.println(num1 + " * " + num2 + " = " + prod);     
    System.out.println(num1 + " / " + num2 + " = " + quot);     
    System.out.println(num1 + " % " + num2 + " = " + rem);
  }
}

2 个答案:

答案 0 :(得分:1)

您需要确保在启动应用程序时,会传递两个可以解析为数字的字符串,因为您的代码假定arguments在位置0和{{{{}}处有一个元素1}}。如果您没有传递两个参数,那么您将收到错误。

例如,如果在程序中调用1

main

或者,如果从命令行调用Calculator.main(new String[] {"10","20"});

Calculator.class

答案 1 :(得分:0)

如异常所示,当程序尝试访问索引为0的数组时,程序遇到了一个数组超出范围的异常。代码中唯一一个位于索引为0的Array中的位置是以下一行

int num1 = Integer.parseInt(args[0]);

换句话说,你的程序找不到args数组的第0个索引,这意味着你没有将任何参数传递给你的程序。事实上看起来你的程序有两个参数。如果使用命令行

,请按以下方式运行程序

java Calculator 100 200