Java기초(2중 for문)

김용민·2023년 3월 16일
0

LoopInLoop


말 그대로 for문 안에 for문을 쓰는 2중 for문이다
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)
	*       * 
	* *   * * 
	* * * * * 
	* *   * * 
	*       * 
    
profile
안녕하세요

0개의 댓글