2013-08-23 5 views
0

Привет У меня есть появляется следующее Синтаксическая ошибка, если условие в JavaПочему на следующее, если условие

if ((i%3)==0) 
    do some work 
else if ((i%3 || i%5)==0)----syntax error appears on this line 
    do some work 

И показывает мне следующее синтаксической ошибки ... Множественные маркеры на этой линии - Оператор | | не определено для аргумента тип (ы) int, int - Ошибка синтаксиса на токене "ИЛИ",. Ожидаемый - я не могу решить или не поле

может кто-нибудь рассказать мне, как я могу исправить это?

+2

Подумайте об этом таким образом: Что '(я% 3 || я% 5)' означают? –

+1

shot-in-the-dark: вы пытаетесь решить эту проблему (http://projecteuler.net/problem=1)? –

+0

Попробуйте прочитать некоторые основные уроки на Java ... Если утверждения не работают так. – jahroy

ответ

1

Вы должны иметь сравнение с каждой частью состояния. В этом случае ваш else if должен выглядеть как этот логического оператор

else if (i%3 == 0 || i%5 == 0) 
6

Вы не можете указать несколько условий. Оператор || работает только с значениями boolean; он не может работать с числами так, как вы хотели бы, чтобы они работали. Необходимо указать каждое условие в отдельности:

else if ((i%3 == 0) || (i%5 == 0)) 

В английском языке, мы бы сказали, «i кратно 3 или 5», и мы знаем, что вы имеете в виду. В Java это не работает. Вы должны быть более ясными. Необходимый код Java эквивалентен «i является кратным 3 или i, кратным 5».

+0

спасибо большое, что rgettman получил его и клонировал. – user2167728

0

Оператор || может использоваться только на типах bool. i%3 - целое число.

0

может применяться только к логическим условиям. вы применяете условие ИЛИ для двух целых чисел. Если ваш i равен 10, то i% 3 = 1 и i% 5 = 0. Итак, вы оцениваете (1 || 0). Если вы действительно хотите это сделать, вам следует использовать побитовый оператор (|). В противном случае используйте скобки, которые вы уже использовали в первой части if. так что это будет либо

else if((i%3 == 0) || (i%5 == 0)) 

or 

else if((i%3 | i%5) == 0) 

Благодаря

Смежные вопросы