-1

我在 TCL 中有以下代码:

set counter 1

for {set i 0} {$i < 3} {incr i 1} {
    set temp $counter
    incr temp 1
    incr counter 2 
}

对于每个循环,counter增加 2,并temp根据 的值增加 1 counter,但 和 的值countertemp

counter 1 temp 2 in the first loop
counter 3 temp 3 in the second loop
counter 5 temp 4 in the third loop

期望值为:

counter 1 temp 2 in the first loop
counter 3 temp 4 in the second loop
counter 5 temp 6 in the third loop

有什么问题以及如何解决?

4

1 回答 1

0

这完全取决于您在哪里使用该值:

set counter 1
for {set i 0} {$i < 3} {incr i 1} {
    set temp $counter
    puts "A: counter = $counter, temp = $temp"
    incr temp 1
    puts "B: counter = $counter, temp = $temp"
    incr counter 2 
    puts "C: counter = $counter, temp = $temp"
}

当我运行它时,我得到:

答:计数器 = 1,温度 = 1
B:计数器 = 1,温度 = 2
C:计数器 = 3,温度 = 2
答:计数器 = 3,温度 = 3
B:计数器 = 3,温度 = 4
C:计数器 = 5,温度 = 4
答:计数器 = 5,温度 = 5
B:计数器 = 5,温度 = 6
C:计数器 = 7,温度 = 6

在我看来,您想要来自所在位置的值puts "B:…"

于 2013-10-07T13:27:06.153 回答