1

我有以下代码:

for(int i=0;i<=100;i++) {
            if(i % 11) {
                System.out.println(i);
            }
        }

我只希望代码打印能被 11 整除的数字。它告诉我:类型不匹配:无法从 int 转换为布尔值

我究竟做错了什么?

4

6 回答 6

3

你需要把它变成这样的条件:

if(i % 11 == 0) {
于 2011-04-08T15:55:15.940 回答
0
if((i % 11) == 0)

应使用==操作员检查。i%11返回默认情况下无法转换的 intboolean并且编译器正在抱怨它。

于 2011-04-08T15:55:02.320 回答
0

像这样做

if(i % 11==0) {
     System.out.println(i);
}

%运算符返回一个int,而只能if()检查boolean值。

于 2011-04-08T15:55:14.290 回答
0

您必须检查模数是否为零(意味着它可以被 11 整除):

if(i % 11 == 0) //...
于 2011-04-08T15:55:30.807 回答
0

试试这个(我已经改变了你的条件):

for(int i=0;i<=100;i++) {
        if((i % 11) == 0) {
            System.out.println(i);
        }
    }
于 2011-04-08T15:55:33.693 回答
0

if表达式需要一个布尔值作为条件传递。

尝试这个:(i % 11) == 0

完整代码:

for(int i=0; i<=100; i++) {
    if( (i % 11)==0 ) {
        System.out.println(i);
    }
}
于 2011-04-08T15:56:08.363 回答