Простой Java Модуль Модуль Вопрос - PullRequest
1 голос
/ 08 апреля 2011

У меня есть следующий код:

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

Я просто хочу, чтобы код печатал число, если оно делится на 11. Это говорит мне об этом: Несоответствие типов: невозможно преобразовать из int в логическое значение

Что я делаю не так?

Ответы [ 6 ]

3 голосов
/ 08 апреля 2011

Вам нужно превратить его в такое состояние:

if(i % 11 == 0) {
0 голосов
/ 08 апреля 2011

if выражение требует, чтобы логическое значение было передано как условие.

Попробуйте это: (i % 11) == 0

Полный код:

for(int i=0; i<=100; i++) {
    if( (i % 11)==0 ) {
        System.out.println(i);
    }
}
0 голосов
/ 08 апреля 2011

Попробуйте (я изменил ваше состояние):

for(int i=0;i<=100;i++) {
        if((i % 11) == 0) {
            System.out.println(i);
        }
    }
0 голосов
/ 08 апреля 2011

Вы должны проверить, равен ли модуль нулю (то есть он делится на 11):

if(i % 11 == 0) //...
0 голосов
/ 08 апреля 2011

Сделай так

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

Оператор % возвращает int, тогда как if() может проверять только значения boolean.

0 голосов
/ 08 апреля 2011
if((i % 11) == 0)

Для проверки следует использовать оператор ==. i%11 возвращает int, который по умолчанию не может быть преобразован в boolean, и компилятор жалуется на это.

...