close

//---------------------------------------------------------------------------
#include <iostream>
//---------------------------------------------------------------------------
int balance_owed;  //帳戶餘額

int main(int argc, char* argv[])
{
        std::cout << "Enter number of dollars owed:";
        std::cin >> balance_owed;

        if (balance_owed = 0)
          std::cout << "You owe nothing.\n";
        else
          std::cout << "You owe " << balance_owed << " dollars.\n";
        std::system("pause");
        return 0;
}
//---------------------------------------------------------------------------


輸出結果:
       Enter number of dollars owed: 12
       You owe 0 dollars.

Q:為什麼每個人的帳戶會變成0?

Ans:if (balance_owed = 0) 用的是一個等號而不是兩個等號。
          C++ 會將 balance_owed 的值設為0,並且測試該值  (0) ; 
         若結果不是 0 (條件成立),就會執行 if 子句。
          但因為結果為 0 (條件不成立) ,所以會執行 else 子句。
          
          該行敘述:
                 if (balance_owed = 0)
         等於:
                 balance_owed = 0;
                 if ( balance_owed != 0)
        應更正為:
                if (balance_owed == 0)


題目來源:C++風格與藝術 第二版 Steve Oualline 著 黃吉霈 編譯

arrow
arrow
    全站熱搜

    jumbowind 發表在 痞客邦 留言(0) 人氣()