java - while循环不遵守退出条件
问题描述
我需要编写一个代码来找到余数为的最小整数:
• 1 除以 3
• 2 除以 5
• 3 除以 7
我尝试了以下代码,但我的输出为 1。我尝试更改初始值,但它仍然只会输出初始值。
public static void main (String[] args)
{
int i=2;
while((i%3)!=1 && (i%5)!=2 && (i%7)!=3) {
i++;
}
System.out.print(i);
}
解决方案
您在while
循环中的条件不正确,应该是:
while((i%3)!=1 || (i%5)!=2 || (i%7)!=3)
为什么?
您需要找到适用的第一个数字:
a%3 == 1 and a%5 == 2 and a%7 == 3
为此,您需要跳过所有数字:
not(a%3 == 1 and a%5 == 2 and a%7 == 3)
如果你应用德摩根定律,你会得到:
a%3 != 1 or a%5 != 2 or a%7 != 3
推荐阅读
- html - 如何制作一个div显示
- shell - 使用 awk 过滤器按总分的降序获取学生记录的详细信息
- javascript - 将 mp3 导入 Vue/TypeScript 应用程序会导致“找不到模块”错误
- google-fonts - 如何从 Google 字体库中包含以前版本的 Google 字体
- javascript - 如何使用带有 Ajv 的正则表达式验证字符串?
- r - ggplot facet_wrap不按字母顺序排列构面R
- mongodb - C# MongoDB 缺少强类型的更新聚合管道
- c# - 从异步函数中的列表中删除项目
- javascript - 具有“CSS like”属性和值自动建议的文本区域
- eclipse - 弹出 Content Assist shell 后无法输入