2011-09-02 19 views

回答

14

像這樣:

if (m < 3) { 
    y--; 
} 
+3

+1啊,比1號線更好,更清晰。 –

+6

+1用於清除「聰明」 – Brian

+1

有一個例外,就是說,如果您正在使用'y - = m <3'的論文中基於規範或示例實現編寫Java代碼,那麼您可能會在規範上與Java代碼的可讀性等價的顯着性。如果您正在複製算法,只要符合定義,您或多或少不會在乎代碼的作用,那麼您是否曾經開始創新並且何時開始創新。除非我們先改變日曆,否則在這種情況下直到9999纔會發生。 –

6

你可以寫

y -= m < 3 ? 1 : 0; 
+2

我認爲'if'在這裏比'三元'操作符更清晰。 –

1

你試過

y -= (m < 3 ? 1 : 0); 
0

如果你正在尋找讓有點模糊,你可以做y -= m < 3 ? 1 : 0;

1

試試這個:(thereis沒有轉換布爾在Java中爲int)

y -= (m<3)?1:0; 
1

這種說法從y中減去1,如果m小於3,也就是說,如果月份是一月或二月。在java中有幾種編碼方式,例如:

if (m<3) y = y-1; 
if (m<3) --y; 
y = (m<3)? y-1 : y; 
y -= (m<3)? 1 : 0; 

其中第一個或第二個可能是最清楚的。

+2

第三個選項毀了我的一天:) –