求Java高手帮忙看看····求解决!谢谢!

2025-03-01 03:38:26
推荐回答(3个)
回答1:

//下面args[i]这里的i没定义。应该是args[1]吧?
if(args[i].equals("+")) { d = d1 + d2; }

//下面这两句可能遇到转型异常,如果参数不是double就会抛异常了。
double d1 = Double.parseDouble(args[0]);
double d2 = Double.parseDouble(args[2]);

//下面的x,换位*,x不是java的运算符
else if(args[i].equals("x")) { d = d1 x d2; }

回答2:

楼上的回答可以,如果arg[0]或者args[2]为空,转型可能会报错,需要加条件判断下。

回答3:

public class Array {
public static void main(String [] args) {
if(args.length < 3) {
System.out.println("Usage.java test \"n1\"op\"n2");
System.exit(-1);
}

double d1 = Double.parseDouble(args[0]);
double d2 = Double.parseDouble(args[2]);
double d = 0;

if(args[1].equals("+")) { d = d1 + d2; }
else if(args[1].equals("-")) { d = d1 - d2; }
else if(args[1].equals("x")) { d = d1 * d2; }
else if(args[1].equals("/")) { d = d1/d2; }
else {
System.out.println("Error operate!");
System.exit(-1);
}
System.out.println(d);

}
}
上一位回答得对了,只是运行时要给几个参数。不过LZ能把(*)当成(X),我想我说了,也是白说。打个酱油了!