「多重ループは良くない」とか「コーディングルール上n重ループまで」という事を目にすることがあると思うんですが、それ全てが間違っているとは思いません。
ただ、メソッドアウトするとかなんとかを考えるより、
「素直に多重ループする方がわかりやすいよね。」
と自分が思ったのに上記制約があるとき、こんな関数を
void func1(void)
{
int i,j,k;
for(i = 0; i < 2; i++) {
for(j = 0; j < 3; j++) {
for(k = 0; k < 4; k++) {
printf("%d,%d,%d\n",i,j,k);
}
}
}
}
こんな風に書こうとする
void func2(void)
{
int n,i,j,k;
for(n = 0; n < 2*3*4; n++) {
k = n % 4;
j = n / 4 % 3;
i = n / (3 * 4);
printf("%d,%d,%d\n", i, j, k);
}
}
自分に性格の歪みを感じてしまいます。
# 3重ループ程度が禁止ってところはまず無いと思いますが、例と言うことで。