执行意外数字的Java代码

时间:2014-05-22 14:08:19

标签: java

我有以下Java代码,我想了解它的计算方式。

我知道它打印出1,1,0,0;但是根据我自己的“计算”,它应该打印出类似3,4,10的东西,当然我的思维方式一定是错的,但我不是太确定了,我的错误是什么。

无论如何,代码是:

public class Q11aFrom2013 {

    public static void main(String[] args) {
        int[] r = { 2, 3, 7, 12, 10 };
        for (int i = 0; i < r.length - 1; i++)
            System.out.println(f(r[i + 1]));
    }

    public static int f(int r) {
        return r % 2;
    }
}

此外,我记下了自己的计算器,请随意查看下面的图片,以便查看或了解并告知我我做错了什么,提前感谢:

enter image description here

2 个答案:

答案 0 :(得分:2)

问题是,您要返回的是您在那里发送的号码的模数。这是除以%(在你的情况下为2)之后的数字的剩余部分。

因此,您将看到的唯一结果是1表示奇数,0表示偶数(余数除以2)。

答案 1 :(得分:2)

取r [i + 1]值并将模数打印为2。

所以:

  • 首先:3 modulo 2 == 1 == 2 * 1 + 1
  • 第二名:7 modulo 2 == 1 == 2 * 3 + 1
  • 第三名:12 modulo 2 == 0 == 2 * 6 + 0
  • 第四名:10 modulo 2 == 0 == 2 * 5 + 0