📚 Study/Java

JAVA :: Test088_배열의 배열(실습 ③)

bono-hye 2023. 9. 12. 00:01

○ 실습

배열의 배열(다차원 배열)을 활용하여 다음과 같은 데이터를 요소로 취하는 배열을 구성하고

그 결과를 출력하는 프로그램을 구현한다.

 

실행 예)

 

  1  2  3  4  5

  5  1  2  3  4

  4  5  1  2  3

  3  4  5  1  2 

  2  3  4  5  1 

계속하려면 아무 키나 누르세요...

 

▼ 내가 작성한 코드

public class Test088
{
	public static void main(String[] args)
	{
		int[][] arr = new int [5][5];
		int n, a;

		for (int i=0;i<arr.length ;i++ )
		{
			n=1;
			for (int j=0;j<arr[i].length ;j++ )
			{
				if (i==j)
				{
					arr[i][j] = n;
					n++;
				}
				else if (i<j)
				{
					arr[i][j] = n;
					n++;
				}
				else if (i>j)
				{
					a=arr[i-1][4];
					for (int f=0; f<=j ;f++ )
					{
						arr[i][j] = a;
						a++;
					}
				}
			}
		}

		for (int i=0; i<arr.length;i++ )
		{
			for (int j=0; j<arr[i].length ; j++ )
			{
				System.out.printf("%3d", arr[i][j]);
			}
			System.out.println();
		}
	}
}

▼ 같이 작성한 코드

public class Test088
{
	public static void main(String[] args)
	{
		// 배열의 배열 선언 및 메모리 할당
		int arr[][] = new int[5][5];

		for (int i=0;i<arr.length ;i++ )			// i → 0 1 2 3 4 
		{
			for (int n=1,j=i;n<=5 ;n++)				// n → 1 2 3 4 5
			{
				// 테스트(확인)
				//System.out.print("" + i + "," + j +  " [" + n + "]");
				arr[i][j] = n;
				
				j++;					//-- 왜 조건식에 들어가면 안되는지 다시 한번 확인해보기!!!

				if (j==5)
				{
					j=0;
				}
			}
		}

		// 배열 전체 출력
		for (int i=0; i<arr.length;i++ )
		{
			for (int j=0;j<arr[i].length ;j++ )
			{
				System.out.printf("%3d", arr[i][j]);

			}
			System.out.println();
		}
	}
}