2014-12-22 217 views
0

我是StackExchange的新手,但我有一個簡單的類,當我運行它時,似乎沒有返回到正確的結果。 下面是代碼:C++代碼不能正常工作

#include <iostream> 

using namespace std; 

int thisIsHowYouIfLikeABoss2(int, int); 

int main() 
{ 
    cout << "One." << endl; 
    thisIsHowYouIfLikeABoss2(9, 9); 
    cout << "Two." << endl; 
    thisIsHowYouIfLikeABoss2(4, 9); 
    return 0; 
} 

int thisIsHowYouIfLikeABoss2 (int x, int y) 
{ 
    cout << "Welcome to the thisIsHowYouIfLikeABoss(), where I calculate if x = y easily." << endl; 
    if (x = y) 
    { 
     cout << "X is Y." << endl; 
    } 
    if (x != y) 
    { 
     cout << "X is not Y" << endl; 
    } 
} 

我的編譯器是GNU C++編譯器Ubuntu的,如果有人想知道。

+4

'if(x = y)'應該是'if(x == y)'。你也可以用'else'替換'if(x!= y)'。如果'x == y'爲真,它會捕獲它。一個簡單的'else'將會發現它不相同的情況 –

+4

很少有關於SO的問題,它有一個如此通用而又頻繁的問題,儘管毫無疑問存在數百個類似的情況,找到*一般*重複。這將是其中之一。翹起你的警告,不要以爲自己已經完成了,直到他們全部消失。而且我懷疑這個頭銜不會給下一個人造成任何幫助,以至於不幸遇到這個*相同的問題(不幸的是)。 – WhozCraig

回答

8

=是賦值運算符,而不是關係相等運算符,它是==

你的代碼改成這樣:

if (x == y) 
{ 
    cout << "X is Y." << endl; 
} 

普羅蒂普:如果你註釋你的函數的參數const那麼編譯器就會給你用的是表達了一個錯誤:

int thisIsHowYouIfLikeABoss2(const int x, const int y) 

(不同於C#和Java,const在C++中並不意味着該值是編譯時固定值或文字,因此您可以使用帶有變量的const)。

+0

啊,就這樣。謝謝! – James

+2

@詹姆斯,如果你有編譯器設置爲顯示警告,它應該已經將此語句標記爲可疑。 –

+0

@詹姆斯我用小費修改了我的答案。 – Dai