-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"
}

それを実行すると、次のようになります。

A: カウンター = 1、温度 = 1
B: カウンター = 1、温度 = 2
C: カウンター = 3、温度 = 2
A: カウンター = 3、温度 = 3
B: カウンター = 3、温度 = 4
C: カウンター = 5、温度 = 4
A: カウンター = 5、温度 = 5
B: カウンター = 5、温度 = 6
C: カウンター = 7、温度 = 6

が配置されている位置からの値が必要なようですputs "B:…"

于 2013-10-07T13:27:06.153 に答える