這一節描述基本語法中的流程語句: 條件語句 IF語句、 選擇語句 Case語句、迴圈語句 while/repeat/for、以及continue、break語句,還有終止程式 運行流程Exit、Halt方法。 廢話不多說,直接貼代碼。 歡迎轉載本系列文章,轉載請註明來源。 ...
這一節描述基本語法中的流程語句: 條件語句 IF語句、 選擇語句 Case語句、迴圈語句 while/repeat/for、以及continue、break語句,還有終止程式
運行流程Exit、Halt方法。
廢話不多說,直接貼代碼。
{ Delphi語句 1、if語句 2、case語句 3、迴圈語句 4、用於迴圈的 continue 和 break 語句 5、程式終止或中止功能 Exit、Halt、Terminate方法 } program Statement; {$APPTYPE CONSOLE} uses SysUtils, StrUtils, //引用字元串操作函數 Windows; //引用系統函數 type charSet = set of ansichar; var //註意Delphi2010裡面String變數相當於WideString dirPath:string; dirAnsiPath:ansistring; //定義一個整型變數 strVar:string; nVar:integer; //定義一個ansichar變數 chVar:ansichar; charSetVar:charSet; procedure showExit(); begin WriteLn('Go into procedure showExit'); Exit(); //由於調用Exit()方法,因此會退出當前函數的執行,下麵的語句不會被執行 WriteLn('Go out procedure showExit()'); end; procedure showHalt(); begin { 1、Halt可以返回一個錯誤碼,如果不帶參數則不能有 ( ) 函數調用符 2、如果用 ( ) 函數調用符,則必須帶參數 } Halt(2); end; procedure showTerminate(); begin //Terminate() 方法用於終止 GUI程式的執行,這裡就不說明啦 end; begin //通過系統API函數獲取系統路徑 GetWindowsDirectory(PWideChar(dirPath),256); dirAnsiPath := dirPath; dirAnsiPath := 'Window have install in' + dirAnsiPath; WriteLn(dirAnsiPath); { IF語句 1、IF語句的第一種形式 2、如果有else分支,則then後面的 begin/end 語句塊 end後面不能有分號 3、如果有else分支,則then後面的語句必須為語句塊 begin/end } if dirPath = 'C:\windows' then begin WriteLn('Windows have install in default partion.'); end else begin WriteLn('Windows have install in default partion.'); end; { IF語句 1、不帶esle子句的if語句 } if True then WriteLn('This is simple if statement'); { if .... then ... else if ... then ... esle if ... then ... else ... } //通過函數 Read 讀取數字 Read(nVar); if nVar = 1 then begin WriteLn('status 1'); end else if nVar = 2 then begin WriteLn('status 2'); end else if nVar = 3 then begin WriteLn('status 3'); end else begin WriteLn('other status'); end; { case 語句 } case nVar of 1: WriteLn('*'); 2: WriteLn('**'); 3: WriteLn('***'); 4: WriteLn('****'); else WriteLn('Input is not 1..4'); end; { 迴圈語句 1、while迴圈 2、repeat迴圈 3、for迴圈 } nVar := 0; { 1、while迴圈語句 } while not ( nVar = 10 ) do //註意 not的優先順序比 關閉比較符的優先順序要高 begin Inc(nVar); WriteLn(nVar); end; { Repet 1、repeat迴圈語句,類似於C語言中的 Do...while,就是迴圈體至少會執行一次 } repeat WriteLn(nVar); Dec(nVar); until nVar = 0; { for迴圈語句 1、for有兩種形式, 2、語法格式1, 計數器向上增加 for 計數器 := 初始值 to 終值 do 迴圈體 3、語法格式2, 計數器向下減小 for 計數器 := 初始值 downto 終值 do 迴圈體 } for nVar := 3 to 10 do begin WriteLn(nVar); end; for nVar := 10 downto 5 do begin WriteLn('This is downto for loop.'); WriteLn(nVar); end; { 基於集合的for迴圈語句 1、針對集合中的元素進行迴圈 2、for I in set do 迴圈,中的set必須是已經初始化的集合變數 不能使集合類型,或者是未初始化的集合變數 3、這個格式的for迴圈還可以變數數組、記錄、字元串、類和介面 } //初始化集合變數 charSetVar := ['a'..'z']; for chVar in charSetVar do begin WriteLn(chVar); end; { continue語句 1、continue語句的用法和 C語言中的用法一樣,用於中止本次迴圈 } for nVar := 0 to 100 do begin if nVar <= 90 then begin Continue; end else begin WriteLn(nVar); end; end; { break語句 1、break語句與 C 語言中個的用法一樣 } while nVar > 70 do begin Dec(nVar); if nVar < 76 then begin break; end else WriteLn(nVar); end; { Exit 方法 1、Exit用於退出當前正在執行的程式塊,但是不會退出整個程式的執行 2、當Exit用於主程式的程式塊的時候就是退出程式 3、在try....finally...調用 Exit 會被當做異常處理 } showExit(); WriteLn('In Main block.'); { Halt 方法 1、Halt用於退出當前正在執行的程式 } ShowHalt(); WriteLn('This statement can never be excuted.'); readln; readln; end.
歡迎轉載本系列文章,轉載請註明來源。