You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用带增量的Tcl for循环实现每5个计数后输出‘GOOD’

问题

现有750个计数,每组包含5个计数,不想编写多个独立的for循环(比如for {set i 0} {i < 5}...、for {set i 5} {i < 10}...),希望每完成5个计数的输出后插入“GOOD”。

当前编写的代码如下:

for {set i 0} {i < 750} {incr i} {
puts $i
if { i * 15} {
puts GOOD
}

期望输出格式:

0
1
2
3
4
GOOD
5
6
7
8
9
GOOD
……
745
746
747
748
749
GOOD

解决方法

你当前代码的问题在于if条件逻辑错误,i * 15无法实现分组判断,应该用取模运算来识别每组的结束节点。

正确代码如下:

for {set i 0} {$i < 750} {incr i} {
    puts $i
    # 判断当前计数是每组的第5个(从0开始计数,i+1对应第N个数)
    if {[expr ($i + 1) % 5] == 0} {
        puts "GOOD"
    }
}

逻辑说明:

  • 循环从i=0执行到i=749,刚好覆盖750个计数
  • 每次先输出当前计数i
  • ($i + 1) % 5 == 0的作用是判断当前数是否是第5、10、15……个,也就是每组的最后一个数,此时输出“GOOD”
  • 全程只用一个循环就能实现分组后插入指定内容的需求

内容的提问来源于stack exchange,提问作者Chang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 00:15:59