2014-06-23 39 views
0

我正在解決一個面試問題,它將編寫一個方法,在不使用+運算符的情況下添加兩位數字。Java中while(0)或while(1)的替代方法是什麼?

我理解該算法非常好,我可以在C

輕鬆地做到這一點

這裏是算法和它完美的作品:

int add(int x, int y) { 
int a, b; 
do { 
    a = x & y;   
    b = x^y; 
    x = a << 1; 
    y = b; 
} while (a); 
    return b; 
} 

我試着翻譯這段代碼到Java,但這種算法函數是因爲a在C中的某一點將變爲000將在while循環中等於False。在Java中有什麼替代方案?

謝謝。

+1

'雖然'或'而(X = 1!)' – bidifx

+2

在java中不能使用'INT因條件而定。你必須使用'boolean'。 'while(boolean)'''while(a == b)',while(true)'等 – BackSlash

回答

4

您需要使用一個布爾值在Java條件:

while (a != 0)

編輯(全碼):

int add(int x, int y) { 
int a, b; 
do { 
    a = x & y;   
    b = x^y; 
    x = a << 1; 
    y = b; 
} while (a != 0); 
return b; 
} 
1

Java不 - 與C - interprete 0false。正如我的評論說,你必須使用一個布爾表達式,如:(!X = 0)

while (a != 0) 
+1

「由於Java不會 - 與C不同 - 將0解釋爲false。」謝天謝地 –

+0

@RichardTingle現在好點了嗎? – bidifx

+0

我實際上並沒有對拼寫進行評論,但認爲java不會將0解釋爲false是件好事。但是沒有更多;是 –