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 楼答案
因为它从未进入循环(2大于-37337)