For循环增量在TCL中为非整数
我想在TCL中实现以下C代码:For循环增量在TCL中为非整数,tcl,Tcl,我想在TCL中实现以下C代码: Float power_pitch = 8 float offset = 7.5 float threshold = 100 for(i=power_pitch+offset ; i<= threshold ; i += power_pitch) set power_pitch 8 set offset 7.5 set threshold 100 for { set i [expr $power_pitch + $offset] } { $i <=
Float power_pitch = 8
float offset = 7.5
float threshold = 100
for(i=power_pitch+offset ; i<= threshold ; i += power_pitch)
set power_pitch 8
set offset 7.5
set threshold 100
for { set i [expr $power_pitch + $offset] } { $i <= $threshold } { incr i $power_pitch}
Float power\u节距=8
浮动偏移=7.5
浮动阈值=100
对于(i=power\u pitch+offset;i而言,incr
命令仅适用于整数。否则,请使用:
set i [expr {$i + $power_pitch}]
for
命令本身不会介意。(注意浮点舍入问题;它们不是Tcl特定的,但可以命中任何不是2的幂的整数倍的东西…。incr
命令仅适用于整数。否则,请使用:
set i [expr {$i + $power_pitch}]
for
命令本身不会介意。(注意浮点舍入问题;它们不是Tcl特有的,但可以命中任何不是2次幂整数倍的东西…)Donal已经给出了问题的答案,我只想对for
命令的两点进行观察
for
几乎是自由形式的
虽然整数计数循环是
的典型用法,但它绝不是唯一的选择
for
命令具有概要
对于开始测试下一个车身
其中start、next和body是命令字符串(即适合作为eval
的参数;它们可以是空的、包含单个命令或是完整脚本),test是布尔表达式字符串(即适合作为expr
的参数并计算为布尔值或可以强制为布尔值的值)
通常,start用于设置test和body,next应该使状态逐渐接近让test返回一个假值,但这只是一个约定,不是一个要求。以下调用是完全有效的(但相当难闻):
for {set n 0 ; puts -nonewline X} {[incr n] < 5} {puts -nonewline X} {
puts -nonewline [string repeat - $n]
}
for {set f [open foo.txt] ; set n 0} {$n >= 0} {puts $line} {
set n [chan gets $f line]
}
释放你的思想,其他的就会随之而来
文档:,,,Donal已经提供了这个问题的答案,我只想对
for
命令的两个方面进行观察
for
几乎是自由形式的for
命令具有概要
对于开始测试下一个车身
其中start、next和body是命令字符串(即适合作为eval
的参数;它们可以是空的、包含单个命令或是完整脚本),test是布尔表达式字符串(即适合作为expr
的参数并计算为布尔值或可以强制为布尔值的值)
通常,start用于设置test和body,next应该使状态逐渐接近让test返回一个假值,但这只是一个约定,不是一个要求。以下调用是完全有效的(但相当难闻):
for {set n 0 ; puts -nonewline X} {[incr n] < 5} {puts -nonewline X} {
puts -nonewline [string repeat - $n]
}
for {set f [open foo.txt] ; set n 0} {$n >= 0} {puts $line} {
set n [chan gets $f line]
}
释放你的思想,其他的就会随之而来
文件: