一个关于计算的问题

ffcwind 2012-03-14 01:04:13
代码如下,是一个java计算器的片段,只用于一目运算,
我输入sqrt 4.0

输出是:
command=sqrt
value=4.0
Invalid caculation!

result在另一端输出,每次都是11.0(就是result的初值)

每次无论输入sin和数字也好,sqrt和数字也好,都是对的输入,但每次都不执行任何一个if,直接执行else,请大大们帮我看下是怎么了。

代码如下

private double parseExcution(String line)
{
double result = 11.0;
String[] element = line.split(" ");
if(element.length != 2)
throw new IllegalArgumentException("Wrong input!");
String command = element[0];
System.out.println("command="+command);
try{
double value = Double.parseDouble(element[1]);
System.out.println("value="+value);
if(command == "sqrt"){
result = Math.sqrt(value);
}
else if(command == "log"){
result = Math.log(value);
}
else if(command == "sin"){
double deg2rad = Math.toRadians(value);
result = Math.sin(deg2rad);
}
else if(command == "cos"){
double deg2rad = Math.toRadians(value);
result = Math.cos(deg2rad);
}
else if(command == "tan"){
double deg2rad = Math.toRadians(value);
result = Math.tan(deg2rad);
}
else{
System.out.println("Invalid caculation!");
}
System.out.println("result="+result);
}
catch(Exception e){
throw new IllegalArgumentException("Invalid arguments!");
}
return result;
}
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ffcwind 2012-03-14
  • 打赏
  • 举报
回复
谢谢各位了。。以前都会注意,这会儿忘了。。
菖蒲老先生 2012-03-14
  • 打赏
  • 举报
回复
command == "sqrt" ⇒ false

"sqrt".equals(command) ⇒ true
chen2319 2012-03-14
  • 打赏
  • 举报
回复
		if("sqrt".equals(command)){
result = Math.sqrt(value);
}


这里用equals,下面的都是一样修改。
creso 2012-03-14
  • 打赏
  • 举报
回复
对象比较用equals方法

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧