2013-08-23 65 views
0

您好我有個以下,如果在Java條件爲什麼在以下if條件

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 未定義 - 令牌「OR」的語法錯誤,。預計 - 我不能解決或不是一個領域

可以任何人請告訴我我怎麼能解決這一個?

+2

想想這樣說:這是什麼'(I%3 ||我5%)'是什麼意思? –

+1

黑暗中射擊:你是否試圖做[this](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

邏輯運算符只能應用於布爾條件。您正在對兩個整數應用OR條件。如果你的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) 

感謝