0
嗨我想下面的代碼,但我得到一個錯誤。它是我給出參考價值的程序,程序應該在列表中上下移動。 的代碼是:在循環tcl問題
proc getvalue {reference direction} {
if {[regexp {(.*)(x.*$)} $reference cellname family string]} {
puts $family
puts $string
} else {
puts " No string matched"
}
set mylist [T_sel2list [get_lib_cells "*/*${family}*"] ]
set sorted_finallist [lsort $mylist]
set i [lsearch $sorted_finallist *$string ]
if {$direction == "DOWN"} {
if {$direction == "DOWN" && $i > 0} {
incr i -1
set requiredDOWN [lindex $sorted_finallist $i]
puts "$requiredDOWN"
} else {
puts "First in the line"
} else {$direction == "UP" && $i >= 0 && $i < [llength $sorted_finallist] -2} {
incr i
set requiredUP [lindex $sorted_finallist $i]
puts "$requiredUP"
} else {
puts "Last in the line"
}
}
}
我收到一個錯誤說: 錯誤:錯誤#ARGS:後多餘的話「其他」中的「如果」命令 使用ERROR_INFO更多信息條款。 (CMD-013) 我不知道for循環出了什麼問題。有人可以幫助我這個。
那麼,你可能想用'elseif'替換一些'else'。 –
我把所有的else都改成了elseif,除了最後一個,並且錯誤信息沒有出現。該過程對於** DOWN **選項正常工作,但對於** UP **選項,它不顯示任何輸出,也不顯示錯誤消息。 for循環未進入該行:**} else {$ direction ==「UP」&& $ i> = 0 && $ i <[llength $ sorted_finallist] -2} {** – user2533429
這是因爲您只輸入那些' if'子句如果'$ direction'是'DOWN',否? –