public static void main(String[] args) {
int num = 1;
for(int i = 0; i < 3; i ++) { // 세로 줄을 결정짓는 요소
for(int j = 0; j < 4; j++) { // 가로 줄을 결정짓는 요소
System.out.printf("(%d , %d) : %2d\t", i, j, num);
num++;
}
System.out.println();
}
System.out.println("끝");
// 중첩된 for문은 다수의 값을 2개 이상의 기준으로 나누어서 처리하고 싶을 때 사용한다
// 단독으로 사용하기보다, 배열 혹은 컬렉션과 연계하여 사용하는 경우가 훨씬 많다.
}
for문을 2개 돌린다는것은 사람이 인식하기에 반복해야하는 기능이 2가지 이상일 경우를 말한다
위와 같이 x축과 y축에 숫자를 찍어서 콘솔에 출력하는 코드 말고서라도 여러가지 경우들이 있다.
사람이 보기엔 위 코드는 3번씩 4번해서 반복을 돌리는 코드지만, 컴퓨터 입장에서는 그냥 12번
돌리는 코드일 뿐! 이라는 사실은 기억해두자!
위 코드와 같이 좌표를 *로 찍어서 도형을 아주 기초적으로 그려보는 코드를 짜 보도록 하자
for(int i= 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
System.out.printf("[%d, %d] ", i , j);
}
System.out.println();
}
System.out.println();
for(int i = 0; i < 5; i++) {
for(int j = 0 ; j < 5; j++) {
if(i == 2 || j == 2) System.out.print("* ");
else System.out.print(" ");
}
System.out.println();
}
System.out.println();
자, 위의 코드들은 어떻게 나올까?
첫번쨰 코드는
[0, 0][0, 1] [0, 2][0, 3] [0, 4]
[1, 0][1, 1] [1, 2][1, 3] [1, 4]
[2, 0][2, 1] [2, 2][2, 3] [2, 4]
[3, 0][3, 1] [3, 2][3, 3] [3, 4]
[4, 0][4, 1] [4, 2][4, 3] [4, 4]
이렇게 나온다. 코드의 i와 j의 증감별로 어떻게 나오는지 보기 좋게
쓴 코드이다. [i ,j] 라고 보면 무방하다
두번째 코드는
* * * * * * * * *
이렇게 나온다.
다음 도형들을 이중 for문을 사용하여 나타내어라
1) * * * * * * * * * * * * * 2) * * * * * * * * * * * * * * * 3) * * * * * * * * * * * * * * * * *