有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么程序不能传递这些断言?

我的代码:(类名是math,它实现了一个接口)

public boolean isPrime(int n){
    for (int i=2; i<n; i++){
        if (n%i==0){
            return false;
        }
    }
    return true;
}

需要传递的断言:

assert math.isPrime(2);
assert math.isPrime(3);
assert math.isPrime(53);
assert !math.isPrime(55);
assert !math.isPrime(24);
assert !math.isPrime(-37337);

奇怪的是,我发现该方法将通过将代码更改为以下内容来传递-37337断言:

for (int i=2; i<n; i++){

          if (!(n%i==0)){
              return true;
          }

      }
      return false;

但我似乎不知道如何传递所有的断言


共 (1) 个答案

  1. # 1 楼答案

    因为它从未进入循环(2大于-37337)