简单的Java模数问题
我有以下代码:
for(int i=0;i<=100;i++) {
if(i % 11) {
System.out.println(i);
}
}
我只想让代码打印可以被 11 整除的数字。但它告诉我这一点: 类型不匹配:无法从 int 转换为 boolean
我做错了什么?
I have the following code:
for(int i=0;i<=100;i++) {
if(i % 11) {
System.out.println(i);
}
}
I just want the code to print the number if it's divisible by 11. It tells me this though: Type mismatch: cannot convert from int to boolean
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你需要把它变成这样的条件:
You need to turn it into a condition like this:
应使用
==
运算符进行检查。i%11
返回一个 int,默认情况下无法转换为boolean
,编译器会对此进行抱怨。Should use an
==
operator to check.i%11
returns an int which cannot be converted toboolean
by default and the compiler is complaining about it.这样做
%
运算符返回一个int
,而if()
只能检查boolean
值。Do it like this
The
%
operator returns anint
, whereasif()
can only checkboolean
values.您必须检查模数是否为零(意味着它可以被 11 整除):
You have to check if the modulus is zero (meaning it is divisible by 11):
试试这个(我已经改变了你的条件):
Try this (I've changed your condition):
if
表达式需要传递一个布尔值作为条件。试试这个:
(i % 11) == 0
完整代码:
if
expression requires a boolean value to be passed as condition.Try this:
(i % 11) == 0
Full code: