用于创建矩形的 for 循环中的模数
Modulus in a for loop for creating a rectangle
这是一个非常具体的问题,因为我只需要知道这个模式是否有名称,以及是否有更有效的方法。 (忽略 for 循环中明显的声明)
for (int i = 0; i < 8; i++) {
int mod = i % 2;
int mod2 = ((i % 4) / 2).ceil() & (mod * 15);
}
现在这输出了一个很酷的“01020102”模式,我需要它来构建一个矩形...但我不喜欢它的笨拙
现在这段代码可以访问一个数组,其模式允许创建一个有 4 个角和 4 个边的盒子(因为它访问 [角长、偶边长度、奇边长度])
如果有人对此有更好的模式,那就太好了……我想这很好
好吧,我看不出你的代码有任何意义......
- 但是有很多方法可以创建您需要的重复序列
- 这里举几个例子
示例 1:
int tab[4]={0,1,0,2};
for (int i=0;i<8;i=(i+1)&3) output(tab[i]);
- 使用 table
示例 2:
for (int i=0;i<8;i+=4)
{
output(0);
output(1);
output(0);
output(2);
}
- 直接输出
这是一个非常具体的问题,因为我只需要知道这个模式是否有名称,以及是否有更有效的方法。 (忽略 for 循环中明显的声明)
for (int i = 0; i < 8; i++) {
int mod = i % 2;
int mod2 = ((i % 4) / 2).ceil() & (mod * 15);
}
现在这输出了一个很酷的“01020102”模式,我需要它来构建一个矩形...但我不喜欢它的笨拙
现在这段代码可以访问一个数组,其模式允许创建一个有 4 个角和 4 个边的盒子(因为它访问 [角长、偶边长度、奇边长度])
如果有人对此有更好的模式,那就太好了……我想这很好
好吧,我看不出你的代码有任何意义......
- 但是有很多方法可以创建您需要的重复序列
- 这里举几个例子
示例 1:
int tab[4]={0,1,0,2};
for (int i=0;i<8;i=(i+1)&3) output(tab[i]);
- 使用 table
示例 2:
for (int i=0;i<8;i+=4)
{
output(0);
output(1);
output(0);
output(2);
}
- 直接输出