[Java]/과제

093 - Java 과제 9 : 배열의 배열(다차원 배열)을 이용하여 알파벳 대문자를 규칙에 맞게 배열의 요소로 저장하여 출력하는 프로그램. (2)

Jelly-fish 2023. 9. 7. 10:00
package Test093;

/*==========================
	■■■ 배열 ■■■	
	- 배열의 배열
============================*/

// 배열의 배열(다차원 배열)을 활용하여
// 다음과 같은 데이터를 요소로 취하는 배열을 구성하고
// 그 결과를 출력하는 프로그램을 구현한다.

// 실행 예)
/*
  A
  B  C
  D  E  F
  G  H  I  J
  K  L  M  N  O  

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


/*
0.0 65
1.0 66 1.1 67
2.0 68 2.1 69 2.2 70
3.0 71 3.1 72 3.2 73 3.3 74
4.0 75 4.1 76 4.2 77 4.3 78 4.4 79
*/


public class Test093
{
	public static void main(String[] args)
	{
		// 1. 배열 생성, 변수 선언*************************************************************************************
		char[][] arr = new char[5][5];
		int intChar = 65;
		
		// 2. 문자형 배열의 배열(다차원 배열)의 모든 요소 값들을 ' ' 문자로 초기화.**********************************************
		//		→ [ 공백 문자 『 ' ' 』로 초기화 해주지 않을시에, 알파벳이 들어가지 않은 배열의 방에는 알 수 없는 문자로 자동 초기화 됨.]
		
		for (int j = 0; j < arr.length ; j++)
		{
			for (int i = 0; i < arr[j].length; i++)
			{
				arr[j][i] = ' ';
			}
		}
		
		// 3. for 문을 돌면서, 문자형 배열 arr에 알파벳 A ~ O 를 규칙대로 저장.*************************************
		
				/*[Logic]▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤


				『알파벳 요소 저장 순서』						『 arr[j][i] 』▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
				┌────────────────┐	
				│ arr[0][0]  │   A	  │					[ 행의 값 j = 0 ~ 4까지 변화한다. ]	
				│		  │   		  │
				│ arr[1][0]  │   B	  │						[ 열의 값 i = 0 ~ j 까지 변화한다. ]
				│ arr[1][1]  │   C	  │							① arr[j][0] ~ arr[j][j] 까지 알파벳 대문자를 요소로 저장한다.	
				│		  │   	  	  │
				│ arr[2][0]  │   D	  │							→ arr[j][i(=0~j)] = (char)intCh;
				│ arr[2][1]  │   E	  │							
				│ arr[2][2]  │   F	  │							② intCh의 값을 1 증가시킨다.	
				│		  │   	  	  │		A        			→ intCh++;
				│ arr[3][0]  │   G	  │		B C      	▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
				│ arr[3][1]  │   H	  │	→	D E F    
				│ arr[3][2]  │   I	  │		G H I J  
				│ arr[3][3]  │   J	  │		K L M N O
				│     :     	  │   :    	  │
				└────────────────┘	

				 ▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤▤*/
		
		for (int j = 0; j < arr.length; j++)		// [ 행의 값 j = 0 ~ 4까지 변화한다. ]	
		{
			for (int i = 0; i <= j; i++)			// [ 열의 값 i = 0 ~ j 까지 변화한다. ]
			{
				arr[j][i] = (char)intChar;			// ① arr[j][0] ~ arr[j][j] 까지 알파벳 대문자를 요소로 저장한다
				intChar++;							// ② intCh의 값을 1 증가시킨다.	
			}
		}
		
	
		// 전체 요소 출력****************************************************************************************
		for (int i = 0; i < arr.length; i++)
		{
			for (int j = 0; j < arr[i].length; j++)
			{
				System.out.printf("%3c", arr[i][j]);
			}
			System.out.println();
		}
		
		
	}
}

// 실행 결과

/*
  A            
  B  C         
  D  E  F      
  G  H  I  J   
  K  L  M  N  O
*/