天天看點

結構化程式設計:變量,常量和指派

結構化程式設計(structured programming)是以子產品功能和處理過程設計為主的詳細設計。其概念最早由E.W.Dijikstra在1965年提出的,是軟體發展的一個重要的裡程碑。它的主要觀點是采用自頂向下、逐漸求精的程式設計方法,使用三種基本控制結構(順序、選擇、重複)構造程式。任何程式都可由這三種基本控制結構構造 。

程式從主程式(Main)入口開始,逐行順序執行,當遇到選擇的時候,代碼依據條件執行,當遇到重複結構時,将重複執行控制結構中的代碼。

軟體在記憶體中執行,是以軟體中的資料在執行的時候都需要儲存在記憶體中,這個過程我們稱為聲明變量和指派。

你可以回憶下國小數學應用題在解題的時候,我們往往會寫:

設x=12

設 y=10

這個行為和開發過程中的聲明指派非常的接近。不過,計算機需要了解x和y分别是什麼類型的資料。為什麼呢?原因很簡單,用于數學計算的20000和上海的郵編200000看上去都是數字,隻不過前者可以用于計算,而後者不可以計算。

  1. static void Main(string[] args)
  2. {
  3. int x = 200000; //聲明一個整型變量,同時指派為200000
  4. int y; //聲明一個整型變量,暫時不指派
  5. y = 100; //為y指派為100
  6. y = x + y; //将x和y的合計值指派為y
  7. string code = "200000"; //聲明一個字元串變量,指派為200000
  8. }

上述代碼中的int和string就是資料類型,資料類型告訴編譯器,程式員希望将來存儲什麼類型的值。x、y、code是變量名稱。變量表示數值或字元串值或類的對象。變量存儲的值可能會發生更改,但名稱保持不變,并且在C#中變量要求明确具體的類型。為變量起個好記的名字非常重要,可以在将來的程式設計過程中容易閱讀和了解代碼。

在C#中,變量是一串連續的符号。他的命名有以下規範:

q 不可以包含空格或其他标點符号。

q 名稱的開頭必須是下劃線或字母。

q 名稱不可以以數字開頭。

一般情況下,我們聲明的都是變量。變量中存儲的值可以在後期被改動,但有時候,我們需要存儲一些值,這些值不允許在後期有變化,這樣我們需要吧聲明的量修飾為常數。

  1. static void Main(string[] args)  
  2. {  
  3.     const double HOUSEFOUND = 200000;//房子的首付款是20萬元,這個數字是不變的  
  4.     double found = 3500 * 12 * 0.5;//第一年每月的工資是3500元,存50%  
  5.     found = found + 3500 * 1.2 * 12 * 0.5;//第二年工資漲了20%,  
  6.     found = found + 3500 * 1.2 * 1.2 * 12 * 0.5;//第三年工資漲了20%,存款計劃不變  
  7.     found = found + 3500 * 1.2 * 1.2 * 1.2 * 12 * 0.5;//第四年工資漲了20%,存款計劃不變  
  8.     found = found + 3500 * 1.2 * 1.2 * 1.2 * 1.2 * 12 * 0.5;//第五年工資漲了20%,存款計劃不變  
  9.     found = found + 3500 * 1.2 * 1.2 * 1.2 * 1.2 * 1.2 * 12 * 0.5;//第六年工資漲了20%,存款計劃不變  
  10.     System.Console.WriteLine("買房子的首付需要{0},過了6年,我存了{1}", HOUSEFOUND, found);  
  11. }  

變量和常量

變量表示數值或字元串值或類的對象。變量存儲的值可能會發生更改,但名稱保持不變。變量是字段的一種類型。常數是另一種類型的字段。它儲存在編譯程式時賦予的值,并且從那之後在任何情況下都不會發生更改。變量和常量所聲明的資料類型有些是有存儲範圍的。

那什麼時候我們稱為變量,什麼時候又将變量稱為字段呢?當變量在函數(方法)體内聲明,我們稱為變量,在函數體外聲明,我們稱為字段。以下代碼示範了這個差異

  1. class Program  
  2. {  
  3.     static void Main(string[] args)  
  4.     {  
  5.         int i = 10;//i稱為變量  
  6.     }  
  7.     int j = 10;//j稱為字段  
  8. }  

繼續閱讀