java菜鸟入门的弱智问题求救! 在线等

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:08:21
public class TestArgs {
public static void main(String[] args) {
if(args.length != 3) {
System.out.println("输入有误,请以 : \"num\" \"op\" \"num\" 的方式输入");
System.exit(-1);
}

try {
double d1 = Double.parseDouble(args[0]);
double d2 = Double.parseDouble(args[2]);
} catch(NumberFormatException e) {
System.out.println("数字输入有误,请重新输入");
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;
TestArgs.info(args, d);
} else if(args[1].equals("-")) {
d = d1 - d2;
TestArgs.info(args, d);
} else if(args[1].equals("x")) {
d = d1 * d2;
TestArgs.info(args, d);
} else if(args[1].equals("/&qu

因为d1和d2的声明都在try里,而后面又有使用d1和d2
至于为什么要初始化,因为系统认为在try中的赋值语句可能由于异常的存在,不会执行,而你后面用到d1,d2时也未进行赋值就进行加法运算,所以会报错

d1,d2被定义在try里面了,所以外面不能被调用,你定义在外面应该就可以了
double d1=0;
double d2=0;
try {
d1 = Double.parseDouble(args[0]);
d2 = Double.parseDouble(args[2]);
} catch(NumberFormatException e) {
System.out.println("数字输入有误,请重新输入");
System.exit(-1);
}