【发布时间】:2016-02-08 18:12:56
【问题描述】:
所以我有一个 String[],其中包含诸如“3+6=”或“5+9/8=”之类的数学表达式。 我有一个获取数组的函数,循环遍历数组并在循环时拆分数组,以便我有一个包含 +、-、*、/ 等数学运算的 String[] 和另一个包含数字的 int[]问题。
然后该函数将答案放入名为 answers 的 int[] 中。我的问题是为什么当我输出答案[0]时,我只能看到第一个数字,而看不到第一个问题的答案?
EDIT = 我发现问题出在哪里。它发生在我的评估方法中。我不知道为什么:
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;
}
【问题讨论】:
-
不是问题,但您在
evaluateAnswerTwoOperations中的 Log.d 语句不准确。 -
你能举一个输入、预期输出和实际输出的例子吗?
-
@AllLelopath 我有一个生成随机数学表达式的函数。所以输入类似于“3+4=”。预期的输出应该是 7,但它打印出 12。它总是相乘
-
@AllLelopath 有时实际输出会打印出表达式的第一个数字
-
如果您记录
operation参数的值将会很有用。此外,生成字符串然后解析它们似乎不是一个好的设计,您可以改为具体化操作和运算符。
标签: android android-layout android-fragments android-intent