简单的Java运算符矛盾

时间:2012-05-26 15:03:56

标签: java operators

这可能是太少的信息......但为什么这与我期望的相反?

                if (indSTime[t] <= monthTotal) {

                    Log.d("indSTime", String.valueOf(indSTime[t++]));
                    Log.d("monthTotal", String.valueOf(monthTotal));

                    NewRate = Double.valueOf(indSRate[s]);
                    indApr[o] = NewRate;
                }

它的工作大于或等于。不小于或等于月总数。

我将“indSTime”设置为4.所以Eclipse中的Logcat开始记录这两个变量。

4, 4
4, 5
4, 6
4, 7

等...

似乎应该是

4 ,1
4, 2
4, 3
4, 4

并停止。

我知道我上面没有添加太多代码?在我面前有什么东西让我失踪吗?或者是什么导致这种情况?

2 个答案:

答案 0 :(得分:3)

4 小于或等于4,5,6和7。

4肯定小于或等于1,2或3。

为什么你认为它应该相反呢?

答案 1 :(得分:3)

它记录了完全合理的事情。看看你的配对:

实际值:

indSTime=4, monthTotal=4
indSTime=4, monthTotal=5
indSTime=4, monthTotal=6
indSTime=4, monthTotal=7

预期:

indSTime=4, monthTotal=1
indSTime=4, monthTotal=2
indSTime=4, monthTotal=3
indSTime=4, monthTotal=4

在所有实际案例中,indSTime小于或等于monthTotal,与您的代码建议完全相同。

预期输出中,您显示了三种indSTime 大于 monthTotal的情况。

所以,你实际上想要相反的操作符,或者你已经对你的日志记录感到困惑,或者可能两者都感到困惑。不幸的是,由于您没有在此处显示任何上下文,因此无法准确说出问题所在 - 但它绝对不是Java本身。