2011-04-08 2 views
1

У меня есть следующий код:Простой Java Modulus Вопрос

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

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

Что я делаю неправильно?

+1

Причина вы получаете эту ошибку в том, что ваше состояние 'я% 11' возвращает' int' значение, но 'if' оператор ожидает 'boolean'. См. Мой ответ ниже. – Jay

ответ

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

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

0

Делают это, как этот

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

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

3

Вам нужно, чтобы превратить его в состояние, как это:

if(i % 11 == 0) { 
0

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

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

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

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

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

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

Полный код:

for(int i=0; i<=100; i++) { 
    if((i % 11)==0) { 
     System.out.println(i); 
    } 
} 
Смежные вопросы