Java新手:找不到语法错误

时间:2015-10-23 07:20:16

标签: java

我最近开始学习Java,需要在下面的一段代码中找到语法错​​误。如果有人可以解释为什么这是错误的,也会非常感激。

public boolean isDivisible(int a, int b) {
    return a % b != 0;
}

提前致谢。

1 个答案:

答案 0 :(得分:3)

该代码中没有语法错误,正如您可以通过将其合并到一个完整的程序中看到它编译正常一样:

public class Test{
    public boolean isDivisible(int a, int b) {
        return a % b != 0;
    }
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.isDivisible(10, 2));
        System.out.println(t.isDivisible(10, 3));
    }
}

然而, 是一个逻辑问题,因为它输出false后跟true,尽管事实上有10个 可以被2整除,但不能被<3>整除。

换句话说,你有一种错误的比较感。一个数字可以被认为是可分的,模数运算符给你一个零值(不是你现在拥有的非零值)。

更好的实现,纠正逻辑错误并覆盖试图除以零的情况,将是这样的:

public boolean isDivisible(int a, int b) {
    if (b == 0) return false;
    return (a % b) == 0;
}