TCL几条命令小结
Set1.对变量进行赋值操作
2.变量的值已经发生改变
Append
1.增加字符串 跟在append后面的变量不能使用变量置换符号
如只能使用:
append txt “sldfkjlsjfl”或append txt skjdflksjdflsjkdf
不能使用:
Append $txt “sldfkjlsjfl”
2.变量的值已经发生改变
Incr
1.增加整型变量 跟在incr后面的变量不能使用变量置换符号
如只能使用:
incrint +3
不能使用:
Incr$ int +3
2.使用incr时后面跟的是正负数而不是加减法
3.变量的值已经发生改变
expr
把此命令放在这个位置应该不对
1.因为expr操作的是表达式,因些此处使用的变量一定要使用$(变量转换符)来进行使用
2.注意使用后变量本身的值没有改变
总结
因此在使用变量的时候比如说for语句,或需要变量自增的时候建议使用“incr var +-setp“或”set var ”
凡是使用了$变量转换符的都不会改变其值,除非在使用set变量.
有点像高级语言中的引用和值调用
包换之后使用的lreplace命令如下面的例子:
Set lista {2 3 4 5 6 7 8 9 9 10}
Set j 2
if {<]} {
set temp
lreplace $lista $j $j ]
lreplace $lista $temp
}
puts "after arrary $lista"
实现方法如下:
set lista {2 3 4 5 6 7 8 9 9 10}
set j 2
if {<]} {
set temp
set lista ] ]
set lista $temp ]
}
puts "after arrary $lista"
附上使用list和数组实现冒泡算法的例子
proc bubble { lista } {
set temp {}
for { set i 0 } { $i<9 } { incr i +1 } {
for {set j 0} { $j< } { incr j +1 } {
if {<]} {
set temp
set lista ]]
set lista $temp]
}
}
}
puts $lista
}
set lista {10 2 3 4 5 1 7 8 9 0}
bubble $lista
使用数组法:
proc mapao { lista } {
set length
for { set temp 0 } { $temp<$length } { incr temp +1 } {
set arrey($temp)
}
puts "the array"
puts $arrey
set arreytemp 0
for { set i 0 } { $i< } {incr i +1} {
for { set j 0 } { $j<-$i] } {incr j +1} {
if {$arrey($j)<$arrey()} {
set arreytemp $arrey($j)
set arrey($j) $arrey()
set arrey() $arreytemp
}
}
}
for { set temp 0 } { $temp<$length} { incr temp +1 } {
append listb $arrey($temp) { }
}
puts $listb
}
set lista {1 2 3 4 5 6 19 3 6 7 8 9}
mapao $lista
页:
[1]