2010年2月18日木曜日

2×5のサイズの2次元配列を定義して、foreachを使用して要素を全て表示したり、Rank Property,Length Propertyを使用して配列の要素数、次元を取得し、for loopにfor loopを、while loopにwhile loopを、for loopにwhile loopを、while loopにfor loopをそれぞれネスト(入れ子)して定義した配列を行列のように表示したりしてみる。

using System;

class MainClass
{
    static void Main()
    {
        // 2×5の2次元配列を定義
        var array = new[,] 
        { { 1, 2,3,4,5 }, { 6,7,8,9,10 } };

        /* 配列のサイズを表示
         * 出力値:10 */
        Console.WriteLine(array.Length);

        /* 配列の次元を表示
         * 出力値:2 */
        Console.WriteLine(array.Rank);

        /* 配列の要素をすべて表示
         * 出力値:1 2 3 4 5 6 7 8 9 10 */
        foreach (var n in array)
        {
            Console.Write("{0} ", n);
        }
        // 2回改行
        Console.Write("¥n¥n");

        /* 配列を行列のように表示
         * 出力値
         * 1 2 3 4 5
         * 6 7 8 9 10 */
        for (int i = 0; i < array.Rank; i++)
        {
            for (int j = 0; j < array.Length/array.Rank; j++)
            {
                Console.Write("{0} ", array[i, j]);
            }
            // 改行
            Console.WriteLine();
        }
        Console.WriteLine();

        // while loopで同様の処理を記述
        int m = 0, l;
        while (m < array.Rank)
        {
            l = 0;
            while (l < array.Length/array.Rank)
            {
                Console.Write("{0} ", array[m, l++]);
            }
            Console.WriteLine();
            m++;
        }
        Console.WriteLine();

        // for loopにwhile loopをネスト(入れ子)
        for (int o = 0; o < array.Rank; o++)
        {
            int p = 0;
            while (p < array.Length / array.Rank)
            {
                Console.Write("{0} ", array[o, p++]);
            }
            Console.WriteLine();
        }
        Console.WriteLine();

        // while loopにfor loopをネスト(入れ子)
        int q = 0;
        while (q < array.Rank)
        {
            for (int r = 0; r < array.Length / array.Rank; r++)
            {
                Console.Write(array[q, r] + " ");
            }
            Console.WriteLine();
            q++;
        }
    }
}

0 コメント:

コメントを投稿