是否有通过循环创建四次 1-12 块的最佳方法

Posted

技术标签:

【中文标题】是否有通过循环创建四次 1-12 块的最佳方法【英文标题】:Is there a best approach to create four times 1 - 12 blocks through a loop 【发布时间】:2021-04-07 03:09:50 【问题描述】:

有一个循环将计数器递增 48 次以将某些值写入 Excel 文件。 在 1 - 48 范围内,将写入 1 - 12 的 4 个块。

预期示例: 1 2 3 4 5 6 7 8 9 10 11 12 - 1 2 3 4 5 6 7 ... 以此类推(4 次)。

我尝试了不同的方法,if/else,switch/case,但在这里我没有得到任何结果。 我的最后一种方法是使用 modulu 运算符的 if 条件。

        for (int i = 1; i <= 48; i++) 
        if (i % 12 != 0) 
            for (int j = 1; j <= 12; j++) 
                workBook.setNumber(HEADLINE_ROW, i + 6, j);
            
         else 
            workBook.setNumber(HEADLINE_ROW, i + 6, 12);
        
    

但是通过这种方法,我得到 12 12 12 12 等等。 我承认错误,但目前不知道如何解决问题。将数据写入 Excel 文件的部分并不重要。我关心的是逻辑。

我被困在了这里的逻辑中,无法继续前进。对于如何并排生成四个 1 - 12 块,您有什么改进的想法或建议吗?

【问题讨论】:

【参考方案1】:

做这样的事

蟒蛇

for i in range(48):
  index = i % 12 + 1
  # do what ever you want here
  print(index)

java

for(int i = 0; i < 48; i++) 
    int index = i % 12 + 1;
    // do something here

【讨论】:

【参考方案2】:

我认为你想要的伪代码是:

for (int i=1; i <= 48; i++) 
    int j = i % 12 + 1;  // 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 ...
    // do something with i and (j + 1)

也就是说,使用外部循环计数器 mod 12,这将为您提供序列 1、2、...、12、 次。

【讨论】:

这将产生 0 1 2... 11 而不是 1 2... 12

以上是关于是否有通过循环创建四次 1-12 块的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

T-SQL:创建四个连接表的聚合视图的有效方法(每个项目的每个审计类型的最大审计条目)

Js函数的三种创建四种调用

Ruby 块的最佳解释? [关闭]

针对IF语句测试范围值数组的最佳方法

如下图所示,实现接口的最佳方法是啥?

在 foreach 循环中使用 try-catch 块的最佳做法是啥? [关闭]