この問題は C# のコーディング中に直面しましたが、その答えはどのプログラミング言語にも当てはまると思います。
複数のネストされたループが必要です (9 としましょうが、100 にすることもできます)。私のコードは次のように実行する必要があります。
for (a1=0;a1<N;a1++)
for (a2=0;a2<N;a2++)
...
for (a9=0;a9<N;a9++)
//do something
このコードは、a1、a2、a3、... の代わりに変数M=9
と int 配列を使用することで短くできると思います。a[]
ヒントを教えていただけますか?
編集:
これを行うためにネストされたループを使用する必要がないことはわかっています。M=9
変数int 配列a[]
とより少ないコードを使用してこれを行うことができるかどうかを尋ねているだけです。
本当に複雑なものを見る必要がある場合は、次のコードを書きました。
string[] s1 = new string[3]{ "apples", "oranges","bananas" };
string[] s2 = new string[5] { "are", "are not", "should be", "must be","seem to be" };
string[] s3 = new string[3] { "big", "small", "tasty" };
int[] a=new int[10];
int[] step = new int[10];
step[1] = 1; step[2] = 1; step[3] = 2;
for (a[1] = 0; a[1] < s1.Length; a[1]+=step[1])
for (a[2] = 0; a[2] < s2.Length; a[2]+=step[2])
for (a[3] = 0; a[3] < s3.Length; a[3]+=step[3])
Console.WriteLine(s1[a[1]] + " " + s2[a[2]] + " " + s3[a[3]]);
s4、s5、... s10 などの配列がさらにあると想像してください。(これは、配列の配列s[]
、または 2 次元配列の可能性がありますs[,]
。