一个小的计算机类,
代码如下:
public class Calculator{
public static void main(String[] args){
double result = calculate(args[0],args[1],args[2]);
System.out.println("计算结果为" + result);
}
public static double calculate(String operator1,String operator2,String operator3){
double result = 0;
switch(operator2.charAt(0)){
case '+': result = Double.valueOf(operator1).doubleValue() + Double.valueOf(operator3).doubleValue(); break;
case '-': result = Double.valueOf(operator1).doubleValue() - Double.valueOf(operator3).doubleValue(); break;
case '*': result = Double.valueOf(operator1).doubleValue() * Double.valueOf(operator3).doubleValue(); break;
case '/': result = Double.valueOf(operator1).doubleValue() / Double.valueOf(operator3).doubleValue(); break;
}
return result;
}
}
为什么当是‘*’的时候得不到正确结果?结果为0。当为加减除的时候结果正确。运行环境为JCREATOR。

解决方案 »

  1.   

    我试了下 是case的问题  你case不到‘*’  你换个其他的就行了  但为什么的话我也搞不清楚
      

  2.   

    JCREATOR功能有限,可能有你想象不到的问题。我在测试的时候,有时候出现中文问题,有时候出现输入接受问题。建议更换编辑器。呵呵~
      

  3.   

    java Calculator 1 * 2*号被命令行转义了,做为Globs使用,匹配当前目录下所有的文件。所以传给应用程序的参数就不是最初的*号了。你可以使用如下命令:
    java Calculator 1 "*" 2
    为每个参数加上双引号,这样就按本身的字符串传给应用程序