amount = balance * 0.069;
在這個程式中,出現了兩個潛在的問題。首先,除原始程式設計師以外的任何人都不清楚這個 0.069 是什麼東西。它看起來似乎是一個利率,但在某些情況下,又可以是與貸款支付相關的費用。如果不仔細檢查程式的其餘部分,怎樣才能確定該語句的目的呢?const double INTEREST_RATE = 0.069;
除了 const 出現在資料型別名稱之前,它看起來就像一個常規的變數定義。關鍵字 const 是一個限定符,它告訴編譯器將該變數設定為唯讀。這樣可以確保在整個程式執行過程中其值保持不變。如果程式中的任何語句嘗試更改其值,則在編譯程式時會導致錯誤。
const double INTEREST_RATE; //非法
INTEREST_RATE = 0.069; //非法
newAmount = balance * 0.069;
就可以改為以下語句:newAmount = balance * INTEREST_RATE;
現在新程式設計師可以輕鬆閱讀第2個語句並更好地理解其中含義。顯然,與 balance 變數相乘的正是利率。const double INTEREST_RATE = 0.072;
然後該程式就可以重新編譯。每個使用 INTEREST_RATE 的語句都將使用新值。//This program calculates the area of a circle. The formula for the // area of a circle is PI times the radius squared. PI is 3.14159. #include <iostream> #include <cmath> // Needed for the pow function using namespace std; int main() { const double PI = 3.14159; // PI is a named constant double area, radius; cout << "This program calculates the area of a circle.n"; // Get the radius cout << "What is the radius of the circle? "; cin >> radius; // Compute and display the area area = PI * pow(radius, 2); cout << "The area is " << area << endl; return 0; }程式輸出結果:
This program calculates the area of a circle.
What is the radius of the circle? 10.0
The area is 314.159