最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

2022年的 Tcl/Tk 編程入門參考 5.條件、遍歷、循環(huán)

2022-04-15 14:56 作者:象喻  | 我要投稿

控制結(jié)構:條件、遍歷、循環(huán)

這是編程語言普遍具有的控制特性,在介紹之前,讓我先介紹一下Tcl/Tk里的布爾值。

布爾值

布爾值是編程語言中,普遍存在的一種數(shù)據(jù)類型。即便沒有這種數(shù)據(jù)類型,也會有這個概念,比如Tcl/Tk。

布爾值表示 "是、非" 或者 "真、假" 這么一個成對的概念。Tcl語言里都是字符串,它通過一些特定字符表示布爾值。首先,很好理解的表示布爾值的單詞(大小寫均可):

yes, no

true, false

on, off

其次,數(shù)值 1, 0


但是實際上tcl語言中還有很多情況表示布爾值:


此外,布爾值單詞的一部分,也被認為是布爾值(??這是極其坑爹的設定)

if ?條件

如果 {表達式結(jié)果為"真"} 那么 {搞點事情~}

基本用法:if {表達式} then {代碼段}

if命令用于條件執(zhí)行。它需要兩個必要參數(shù):一個參數(shù)是表達式,另一個是代碼段,而then參數(shù)是可選的。當表達式運算結(jié)果為真時就會執(zhí)行代碼段。

表達式可以是多行語句,結(jié)果必須是布爾值。并不局限于數(shù)學表達式,其具體可執(zhí)行的范圍,跟expr命令一樣,可以參考expr命令的文檔。then這個參數(shù)是可以省略的,主要用于加強代碼的可讀性。


else

else參數(shù):如果表達式結(jié)果為“假”時,就運行一段代碼。

if {表達式} ?then? {代碼段} else {代碼段2}

如果 {表達式結(jié)果為"真"} 那么 {搞點事情~} 否則 {另外搞點事情~}


elseif

elseif類似于在else后面再接一個if命令。一個if命令可以有多個elseif。

如果 {表達式結(jié)果為"真"} ?{搞點??事情}

要不換個姿勢 {表達式2結(jié)果為"真"} ?{搞點*事情}

再試一次 {表達式3結(jié)果為"真"} ?{搞點??事情}

實在不行 {搞點??事情}


*注意,雖然看上去像語法,但是if命令就是普通的Tcl命令,它有接受多個參數(shù),其中像then、else和elseif這樣的參數(shù)屬于預設參數(shù),后接的代碼段,無論多長本身也是參數(shù)。


switch 匹配

switch ??可選參數(shù)? ?字符串 ?匹配值1 ?代碼段1 ?匹配值2 ?代碼段2....

switch命令用于進行匹配操作,該命令需要指定一個字符串來跟多個值進行匹配,每個進行匹配的值都有一段對應的代碼段,當字符串與匹配值相同時,就執(zhí)行這個匹配值對應的代碼段。

*提示:Tcl語言的字符串只要不是{}括起來的,都能進行變量替換和命令替換。

該命令用于簡化需要使用多個 if...elseif 語句的情況,也就是說如果不怕麻煩的話,該命令也可以用if...elseif語句來改寫。

可選參數(shù)

?-exact ?嚴格模式(默認值,精確識別特殊字符,比如: *、$ )
?-glob ?與 string match 命令相同,支持 * ? 匹配
?-regexp ?正則表達式
?-nocase ?不區(qū)分大小寫
?-- ?表示參數(shù)結(jié)束(用于匹配字符串以 - 開頭時,這會導致tcl誤認為是參數(shù)-xxx)


foreach 遍歷

foreach ?變量名 ?列表 ??變量名2? ??列表2? ?{代碼段}

用于遍歷列表中的所有元素:

  • 按順序?qū)⒃刭x值給變量,并執(zhí)行代碼段

  • 完畢后,將下一個元素賦值給變量,再次執(zhí)行代碼段……

  • 不斷重復直到遍歷全部元素

*提示:如果元素不足時,用空字符代替

?


break 中斷

break中止當前的遍歷/循環(huán),直接結(jié)束遍歷/循環(huán)命令。也有叫它“跳出”的。

?


continue 跳過

continue 跳過本輪遍歷/循環(huán),直接進入下一輪


incr 增加

incr 給變量增加數(shù)值,主要搭配下面介紹的循環(huán)命令。

incr 變量名 ?增量? ?(變量值和增量都必須為整數(shù))


for 循環(huán)

for ?起始定義 ?測試條件 ?每輪最后執(zhí)行的語句 ?{代碼段}

For命令,也就是for循環(huán),是編程語言里的經(jīng)典循環(huán)語句,各個編程語言的具體實現(xiàn)略有不同,但是功能都類似。

TCL語言的for命令需要四個參數(shù):第一個參數(shù)起始定義,第二測試條件,第三個參數(shù)是每輪最后執(zhí)行的語句,最后一個參數(shù)是{代碼段}。

for命令的運行方式:

  • 首先只運行一次<起始定義>部分的語句

  • 然后進入循環(huán),判斷<測試條件>的執(zhí)行結(jié)果是否為真,如果結(jié)果為真,就運行{代碼段}中的代碼,代碼段運行完畢之后,再運行<每輪最后執(zhí)行的語句>,運行完畢之后,本輪結(jié)束,進入下一輪

  • 下一輪繼續(xù)判斷<測試條件>的執(zhí)行結(jié)果是否為真,如果為真,就繼續(xù)執(zhí)行{代碼段}和<每輪最后執(zhí)行的語句>,然后繼續(xù)進入下一輪

  • 一直循環(huán)直到<測試條件>為假,結(jié)束命令。

?



while 循環(huán)

while 測試條件 {代碼段}

只要測試條件為"真",就會反復執(zhí)行代碼段

?



2022年的 Tcl/Tk 編程入門參考 5.條件、遍歷、循環(huán)的評論 (共 條)

分享到微博請遵守國家法律
铜梁县| 日照市| 武穴市| 高邮市| 尼玛县| 喜德县| 江陵县| 子长县| 吉首市| 德格县| 宁武县| 温泉县| 万山特区| 渑池县| 惠州市| 盐边县| 台东市| 扶绥县| 四会市| 蒲江县| 玉田县| 中山市| 信宜市| 十堰市| 吉安县| 青田县| 乌兰浩特市| 东至县| 林西县| 新乡市| 鸡东县| 吉木乃县| 上犹县| 静乐县| 承德市| 横峰县| 无极县| 连江县| 贺兰县| 历史| 盱眙县|