是否有通过循环创建四次 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 块的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章