Java使用for循环查找符合多条件的数字时代码报错如何解决
错误定位与修复方案
核心前置错误:for循环结构使用错误
Java中for(初始化语句; 循环继续条件; 迭代语句)的第二部分是控制循环是否继续运行的判断,你把所有数字筛选条件放到这里会导致只要任意一个条件不满足,循环直接终止,根本无法遍历1~100的所有数字。正确写法是把循环继续条件设为x <= 100,所有筛选逻辑放到循环内部的if判断中。
单个报错点修复
- 针对
6= (x%10) + (x/10)的意外类型错误:Java中=是赋值运算符,左值必须为可修改的变量,常量不能作为赋值左值。判断两个值相等需要用双等号==,正确写法为(x%10 + x/10) == 6。 - 针对
bad operand types for binary operator '&&'错误:逻辑与运算符&&要求左右两边都必须是布尔类型值,你写的x/4是整数除法运算,返回int类型不符合要求。判断x能被4整除的正确写法是x %4 == 0。
修复后完整代码
public class Test{ public static void main(String[] args){ // 遍历1到100的所有数字 for(int x = 1; x <= 100; x++) { // 所有筛选条件放到if判断中 if((x%6 == 0) && (x%7 == 0) && (x%4 == 0) && ((x%10) + (x/10) == 6)) { System.out.println("Die gesuchte Zahl ist: " +x); } } } }
补充说明
4、6、7的最小公倍数为84,1~100范围内只有84同时满足被4、6、7整除的要求,但84的各位数字之和为8+4=12,不满足各位和为6的条件,因此运行上述代码不会有任何输出结果。
内容的提问来源于stack exchange,提问作者VLUVIG
相关产品推荐
相关产品推荐

