简单的Java模数问题

时间:2011-04-08 15:53:48

标签: java modulus type-mismatch

我有以下代码:

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

我只想让代码打印出数字,如果它可以被11整除。它告诉我这个:类型不匹配:无法从int转换为布尔值

我做错了什么?

6 个答案:

答案 0 :(得分:3)

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

if(i % 11 == 0) {

答案 1 :(得分:0)

if((i % 11) == 0)

应该使用==运算符进行检查。 i%11返回一个默认情况下无法转换为boolean的int,并且编译器正在抱怨它。

答案 2 :(得分:0)

这样做

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

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

答案 3 :(得分:0)

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

if(i % 11 == 0) //...

答案 4 :(得分:0)

试试这个(我改变了你的状况):

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

答案 5 :(得分:0)

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

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

完整代码:

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