


try-catch로....처리해봤다. void play3(int[][] arr) {
int[] arrLength = {5, 3, 6, 4, 7, 2, 8, 9};
int max = 0;
for (int i : arrLength) {
if(i>max) {max = i;}
}
for(int i = 0; i < max; i++){
for(int j = 0; j < 4; j++) {
if(i == 0 && j == 0) {
for(int k = 2; k < 6; k++) {
System.out.printf(" %d 단",k);
System.out.print(" ");
}
System.out.println();
for(int k = 2; k < 6; k++) {
System.out.print("---------");
System.out.print(" ");
}
System.out.println();
}
try {
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
} catch(Exception e){
System.out.print(" ");
}
}
System.out.println();
}
System.out.println();
for(int i = 0; i < max; i++){
for(int j = 4; j < 8; j++) {
if(i == 0 && j == 4) {
for(int k = 6; k < 10; k++) {
System.out.printf(" %d 단",k);
System.out.print(" ");
}
System.out.println();
for(int k = 6; k < 10; k++) {
System.out.print("---------");
System.out.print(" ");
}
System.out.println();
}
try {
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
} catch (Exception e) {
System.out.print(" ");
}
}
System.out.println();
}
System.out.println("-------------------------↑try-catch문-------------------------------------");
System.out.println();
}
하지만 try-catch의 용도는 에러처리가 목적이기 때문에 해당 방법이 옳지 못하다고 여겨 if문으로 현재 진행중인 행의 열 길이가 진행 중인 순서보다 작다면 공란을 표시하도록 수정하였다.
void play4(int[][] arr) {
System.out.println("-----------------------------↓if문----------------------------------------");
int[] arrLength2 = {5, 3, 6, 4, 7, 2, 8, 9};
int max2 = 0;
for (int i : arrLength2) {
if(i>max2) {max2 = i;}
}
int column = (int) (arr.length / 2);
for(int i = 0; i < max2; i++){
for(int j = 0; j < column; j++) {
if(i+1 > arr[j].length) {
System.out.print(" ");
} else if(j == 0 && i== 0) {
System.out.printf(" %d단 %d단 %d단 %d단 \n",j+2,j+3,j+4,j+5);
System.out.println("--------- --------- --------- --------- ");
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
} else {
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
}
}
System.out.println();
}
System.out.println();
for(int i = 0; i < max2; i++){
for(int j = column; j < column*2; j++) {
if(i+1 > arr[j].length) {
System.out.print(" ");
} else if (j == column && i ==0) {
System.out.printf(" %d단 %d단 %d단 %d단 \n",j+2,j+3,j+4,j+5);
System.out.println("--------- --------- --------- --------- ");
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
} else {
System.out.printf("%d X %d = %2d ",j+2,i+1,arr[j][i]);
}
}
System.out.println();
}
}