最後有輸出的截圖 大家自己看吧 提醒大家的是在寫tcl腳本代碼的時候 一定要注意空格啊
#輸出Hello World
puts stdout "Hello World!"
#輸出xiaopeng
puts "xiaopeng"
#輸出3
set a 3 ;# a <- 3
puts $a
set var1 5; set var2 10
unset var1 var2
set a 100; puts $a.00
set a 3; set b 5
puts "$a + $b = [ set a [expr $a + $b ] ]"
set x -1
if { $x >= 0 } {
puts "abs(x) = $x"
} else {
puts "abs(x) = [expr -$x]"
}
set day 3
if { $day == 1 } {
puts "Monday"
} elseif { $day == 2 } {
puts "Tuesday"
} elseif { $day == 3 } {
puts "Wednesday"
} else {
puts "Other days"
}
set day 1
switch -exact -- $day {
1 { puts "Monday" }
2 { puts "Tuesday" }
default { puts "Other days" }
}
set var 2
switch -glob -- $var \
-* {puts "var is a less than 0"} \
default { puts "b is not a negative" }
set var ad
switch -glob -- $var \
-* {puts "var is a less than 0"} \
default { puts "b is not a negative" }
set i 0; while { $i< 5 } { incr i }
puts "i=$i"
set n 10; set result 1
while { $n > 1 } {
set result [ expr $result * $n ]
set n [ expr $n -1 ]
}
puts "result=$result"
puts "n=$n"
set i 0
foreach value { 1 3 5 7 9 11 } {
set i [expr $i + $value]
}
puts "i=$i"
foreach var [ list $a $b xxx ] {
puts "var = $var"
}
set k 0
for { set i 1 } { $i < 11 } { incr i } {
set k [ expr $k + $i ]
}
puts $k
proc p1 { a b {c 1} } {
set x [ expr ($a + $b) * $c ]; puts "x = $x"
return x
}
p1 1 2
proc variousParams { a { b foo } args } {
foreach param { a b args } {
puts "$param = [ set $param ]"
}
}
variousParams 33 44 32 11
set result 1
proc p { n } {
global result
set result $n
}
puts [p 2]
proc factorial { n } {
puts stderr "n=$n"
if {$n <= 1} {
return 1
}
return [expr $n * [factorial [set n [expr $n -1 ]] ] ]
}
puts [factorial 4]
set q [factorial 5]
puts "q=$q"
for { set i 0 } { $i < 5 } { incr i } {
set arr($i) [ expr $i * $i * $i ]
}
puts $arr(3)
#必須說說最後這個程式 寫Tcl腳本代碼的時候 必須有空格啊 一定要注意 沒有空格根本調試不出來 這個程式我調了有半個多小時 就是因為空格的問題
set a 10
set b 0
proc p { a } {
set b 3
if {$a >= 0 } {
puts $b
} else {
puts [expr 0-$b]
}
}
p -2
p $b
結果運作如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcNzY6JWMkJjYxgmMjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNzIDMxkDM4EDNykDMzEDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)