a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

於Delphi的Case述句中使用字串當(dāng)作判別變數(shù)

2019-11-18 18:43:37
字體:
供稿:網(wǎng)友
DelphiCase述句中使用字串當(dāng)作判別變數(shù)
 
 
● 前言
 
提到Case述句(statement),我們首先會聯(lián)想到的應(yīng)用案例莫過於就是透過一個判別變數(shù),讓程式流程依照不同的條件狀況來選擇符合的路徑繼續(xù)執(zhí)行下去。或者是,當(dāng)我們的程式中出現(xiàn)了一連串的if與 else if述句組合時,我們也經(jīng)常都會想到要利用Case述句來簡化程式碼並藉以提升其可讀性與執(zhí)行效率。
 
但是在某些情況下,Case述句並無法應(yīng)用於我們的程式當(dāng)中,因為其所允許接受的判別變數(shù)僅限於任何形式的咚閌劍╡xPRession)與序數(shù)型別(ordinal type),這所謂的「序數(shù)型別」指的就是整數(shù)、字元、列舉、布林和集合等「有次序」的,而且可以應(yīng)用於諸如Ord()、Pred()、Succ()、Low()與High()等函示的型別(請參閱[1])。
 
不幸的是,字串(string)顯然並非序數(shù)型別的一種,而在某些時候(底下馬上會舉例),當(dāng)條件變數(shù)的型別是字串而且條件分支又相當(dāng)多時,儘管無奈,然而除了使用大量的if與else if述句之外,似乎也別無他法了,唉。
 
例如下面的程式碼在Delphi中便不被允許:
 
     #001 var
     #002      Str: String;  // 宣告String型別的判別變數(shù)
     #003     begin
     #004      case Str of  // 錯誤訊息: Ordinal type required
     #005          // ...
     #006      end;
     #007 end;
 
這根本就無法通過編譯嘛,因此傳統(tǒng)的解決方案通常是將之轉(zhuǎn)換為大量的if與else if述句的組合體。此時真希望我們用的是Visual Basic,因為下面的程式碼是可被其編譯器允許的(請參閱[5]):
 
     #001 Dim Str As String     ' 宣告String型別的判別變數(shù)
     #002     Select Case Str ' 等同於Delphi的Case述句
     #003      '...
     #004 End Select        ' OK, 通過編譯
 
於是在本文中,筆者試圖以此問題為出發(fā)點,在「除了轉(zhuǎn)換為if與else if述句組合的傳統(tǒng)解決方案之外」找尋其他可行的因應(yīng)之道,並由衷地希望本文對於面臨此問題而亟欲尋求解決方法的人(看了[12]-[14]之後,筆者更發(fā)現(xiàn)確實如此)能夠有所幫助。
 
先預(yù)告一下好了,筆者打算介紹7種解決方案,其中前5種方法乃是節(jié)錄或延伸自[9]-[13]的內(nèi)容,而第6種則是筆者實作的綜合性多載化(overloading)版本。這些方案分別是:
 
v           方案一:搜尋字串陣列
v           方案二:使用實數(shù)索引
v           方案三:利用雜湊函數(shù)
v           方案四:巢套case述句
v           方案五:使用TStringList
v           方案六:實作多載函示
v           方案七:應(yīng)用現(xiàn)成函示
 
本文將從複習(xí)條件述句(內(nèi)容主要參考[1]與[4])與認(rèn)識字串(內(nèi)容主要參考[2])等主題開始,熟悉Delphi者可略過此部分,直接閱讀〈效能議題〉小節(jié)直到文末為止

上一篇:Delphi源程序格式書寫規(guī)范

下一篇:Self-Delete程序之Delphi版本,終于搞定了。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 欧美精品在线不卡 | 亚洲成人精品在线 | 久久99精品久久久久久久 | 黄色毛片一级 | 久久精品视频偷拍 | 美女久久久久 | 中出片 | 亚洲一级淫片 | 日本久久久久久久久久久久 | 欧美日韩高清 | 国产精品久久久久久久久久 | 日韩精品观看 | 免费黄色在线观看 | 亚洲国产精品va在线看黑人 | 日韩欧美大片在线观看 | 日本不卡高字幕在线2019 | 日韩亚洲视频 | av成人在线观看 | 欧洲美女7788成人免费视频 | 国产精品a久久久久 | 超碰免费人人 | 黄a在线 | 天天干天天添 | 国产视频在线播放 | 一区二区三区免费视频网站 | 欧美性一区二区 | 99爱在线观看 | 在线免费观看黄 | 国产精品美女视频 | 不卡一区二区三区四区 | 爱爱视频天天操 | 欧美日本亚洲 | 四影虎影ww4hu55.com | 成人看片毛片免费播放器 | 2021最新热播中文字幕-第1页-看片视频 亚洲第一男人天堂 | 日韩一级| 精品超碰 | 秋霞影院午夜丰满少妇在线视频 | 精品日韩av | 尤物久久av一区二区三区亚洲 | 福利二区 |