程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第二章-Delphi面向對象的編程方法(二)(1)

第二章-Delphi面向對象的編程方法(二)(1)

編輯:Delphi

2.1.4 跳轉語句 

Object Pascal的跳轉語句有if和case兩個。 

2.1.4.1 if語句 

if語句會計算一個表達式,並根據計算結果決定程序流程。在上文的例程中,根據ColorDialog.Execute的返回值,決定窗體的背景顏色。if保留字後跟隨一個生成Boolean值True或False的表達式。一般用“=”作為關系運算符,比較產生一個布爾型值。當表達式為True時,執行then後的語句。否則執行else後的代碼,if語句也可以不含else部分,表達式為False時自動跳到下一行程序。

if語句可以嵌套,當使用復合語句表達時,復合語句前後需加上begin…end。else保留字前不能加“;”,而且,編譯器會將else語句視為屬於最靠近的if語句。必要時,須使用begin…end保留字來強迫else部分屬於某一級的if語句。 

2.1.4.2 case語句 

case語句適用於被判斷的變量或屬性是整形、字符型、枚舉型或子界型時(LongInt除外)。用case語句進行邏輯跳轉比編寫復雜的if語句容易閱讀,而且程序代碼整形較快。

下面的例程顯示一個使用case語句的窗體:

建立如下的事件處理過程: 

procedure TForm1.Button1Click(Sender: TObject);

var

Number : Integer;

begin

Number := StrToInt(Edit1.Text);

case Number of

1,3,5,7,9: Label2.Caption := '奇數';

0,2,4,6,8: Label2.Caption := '偶數';

10..100:

begin

Label2.Caption := '在10到100之間';

Form1.Color := clBlue;

end;

else

Label2.Caption := '大於100或為負數';

end;

end; 

執行程序,當Edit1部件接受到一個值,並按動“OK”按鈕觸發程序後,Number便被賦值為用戶輸入的數值。case語句根據Number的值判斷該執行哪一條語句。象if語句一樣。case語句也有可選擇的else部分。case語句以end結尾。 

2.1.5 循環語句 

Object Pascal的循環語句有三種:repeat、while和for語句。 

2.1.5.1 repeat語句 

repeat語句會重復執行一行或一段語句直到某一狀態為真。語句以repeat開始,以until結束,其後跟隨被判斷的布爾表達式。參閱以下的例程: 

i := 0;

repeat

i := i+1;

Writen(i);

until i=10; 

當此語句被執行時,窗體的下方會出現1到10的數字。布爾表達式 i=10 (注意,與其他語言不同的是,“=”是關系運算符,而不能進行賦值操作)直到repeat..until程序段的結尾才會被計算,這意味著repeat語句至少會被執行一次。 

2.1.5.2 while語句 

while語句和repeat語句的不同之處是,它的布爾表達式在循環的開頭進行判斷。while保留字後面必須跟一個布爾表達式。如果該表達式的結果為真,循環被執行,否則會退出循環,執行while語句後面的程序。

下面的例程達到和上面的repeat例程達到同樣的效果: 

i := 0;

while i<10 do

begin

i := i+1;

writeln(i);

end;  

2.1.5.3 for語句 

for語句的程序代碼會執行一定的次數。它需要一個循環變量來控制循環次數。您需要說明一個變量,它的類型可以是整形、布爾型、字符型、枚舉型或子界型。

下面的程序段會顯示1到5的數字,i為控制變量: 

var

i : integer;

for i := 1 to 5 do

writeln(i); 

以上介紹了三種循環語句。如果您知道循環要執行多少次的話,可以使用for語句。for循環執行速度快,效率比較高。如果您不知道循環要執行多少次,但至少會執行一次的話,選用repeat..until語句比較合適;當您認為程序可能一次都不執行的話,最好選用while..do語句。 

2.1.6 程序模塊

程序模塊在Object Pascal中是很重要的概念。它們提供了應用程序的結構,決定了變量、屬性值的范圍及程序執行的過程。它由兩個部分組成:可選擇的說明部分和語句部分。如果有說明部分,則必在語句部分之前。說明部分包括變量說明、常量說明、類型說明、標號說明、程序,函數,方法的說明等。語句部分敘述了可執行的邏輯行動。

在Delphi中,最常見的程序模塊便是事件處理過程中的程序模塊。下面的事件處理過程是含有變量說明部分的程序模塊: 

procedure TForm.Button1Click(Sender Tobject);

var {程序模塊的說明部分}

Name : string;

begin {程序模塊的語句部分}

Name := Edit1.Text;

Edit2.Text := 'Welcome to Delphi'+Name;

end; {程序模塊結束} 

庫單元也是程序模塊。庫單元的interface部分含有庫函數、類型、私有,公有域的說明,也可以含有常量、變量的說明。這一部分可以作為程序模塊的說明部分。在庫單元的implementation部分中通常含有各種事件處理過程,它們可以視為模塊的語句部分,是事件處理模塊。庫單元模塊結束於庫單元結束的end.處。

程序模塊中可以包含其他的程序模塊。上文庫單元模塊中含有事件處理模塊。而庫單元模塊實際是在工程程序模塊中。

所有的Delphi應用程序都有相同的基本結構。當程序逐漸復雜時,在程序中加入模塊即可。例如在庫單元模塊中加入事件處理模塊,向工程中加入庫單元模塊等。模塊化編程使得程序結構良好,並且對數據具有保護作用。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved