【发布时间】:2016-05-18 13:43:40
【问题描述】:
我有一个函数,它接受一个字符串和 2 个整数。该函数根据字符串是什么,对这两个数字执行操作。
即使我传递了“+”、“-”等,我的默认情况也始终运行。我不知道为什么。 这是代码:
public int evaluateAnswerTwoOperations(String operation, int numberOne, int numberTwo) {
switch(operation){
case "+":
Log.d("usingsubtraction","plus2nmbers");
return numberOne + numberTwo;
case "-":
Log.d("usingsubtraction","usingsubtraction");
return numberOne - numberTwo;
case "/":
Log.d("usingsubtraction","usingdivision");
return numberOne / numberTwo;
default:
Log.d("usingsubtraction","usingmultiplication");
return numberOne*numberTwo;
}
有人知道为什么吗?
【问题讨论】:
-
这是不可能的,检查部署的代码是否是最新的,还要检查输入的尾随/前导空格。
return是return之后不会运行任何代码(除非您使用 try/finally) -
@anaxin 那需要使用
char而不是String。 -
据我所知,您在此处提供的代码看起来是正确的,因此错误可能在其他地方。我建议添加一个
Log.d()调用来打印operation的值。您应该在值周围加上引号,以便您可以看到可能导致问题的空格。 -
不请自来的建议:您应该明确地使用
case "*":进行乘法运算,并使用default:打印相应的错误消息。
标签: java android arrays android-intent switch-statement