java - 我收到以下代码的数组索引越界错误...为什么?

标签 java exception indexoutofboundsexception

为什么我的数组索引超出了此代码的范围? 我在线程 MainJava.Lang.ArrayIndexOutOfBoundsException 中收到错误异常

//java calculator
public class Calculator
{
public static void main(String[] args)
{
double a,b,m;
char c;
a=Double.parseDouble(args[0]);//taking input from command line
c=args[1].charAt(0);
b=Double.parseDouble(args[2]);
switch(c)//using switch to perform calc operations
{
case('+'):
           m=a+b;
           System.out.println(args[0]+args[1]+args[2]+"="+m);
           break;
case('-'):
           m=a-b;
           System.out.println(args[0]+args[1]+args[2]+"="+m);
           break;
case('*'):
           m=a*b;
           System.out.println(args[0]+args[1]+args[2]+"="+m);
           break;     
case('/'):
           m=a/b;
           System.out.println(args[0]+args[1]+args[2]+"="+m);
           break;
default:
          System.out.println("invalid option");
}
}

}

最佳答案

如果您传递命令行参数,代码可以正常工作。

您可以通过右键单击 Eclipse 中的 Calculator.java 文件并以 > 运行配置来运行来向类添加参数。在里面,您可以单击参数选项卡并将参数手动添加到程序参数中。

或者,您可以在命令提示符下运行它并以这种方式传递参数。

在命令行上:java Calculator 5 + 1

更多详细信息请参见:https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html

如果您不打算使用命令行参数,则可以使用 Scanner 对象来设置变量 a、b 和 c。

Scanner input = new Scanner(System.in);
a = input.nextDouble();
c = input.next().charAt(0);

关于java - 我收到以下代码的数组索引越界错误...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30221020/

相关文章:

java - Websphere 应用程序服务器安全 REST API

java - 是否可以将 spring rest 文档与 spock 一起使用

java - 在 Pebble 模板中插入位于文件系统中任意位置的模板

java - 返回 HttpStatus 代码的更好方法 Spring REST

Java 如何求两个不同数组中元素之和?

java - ArrayIndexOutOfBoundsException 的原因

java - lombok 包不存在

java - JDBC 异常 : Operation not allowed after ResultSet closed

java - 嵌套的 Android 应用程序无法启动

java - 为什么将我的应用程序安装到其他设备后会出现 IndexOutOfBoundsException?