java - 为什么程序不能通过这些断言?
问题描述
我的代码:(类名是数学,它实现了一个接口)
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;
但我似乎无法弄清楚如何通过所有的断言
解决方案
因为它从不进入循环(2大于-37337)
推荐阅读
- javascript - 在 iframe 中触发“点击”事件
- php - 来自具有相同 ID 的数据库结果的多维数组 PHP
- ios - 拥有一个带有多个 UICollection 视图部分的主要粘性标题?Xcode - 斯威夫特
- firebase - 云函数影响读/写配额
- android - ViewPager 位置无法正常工作
- windows - 如何在输出中获取输入基名?
- jsoup - 维基百科使用 jsoup 抓取纯文本和超链接
- javascript - promise.all 在 firebase 中使用 getDownloadURL()
- mysql - 使用本机反应显示来自 MYSQL 数据库的特定值
- javascript - Bootstrap 4登陆页面添加的右侧图像无法正确放置