관리 메뉴

Minwoo Dev.

[Java] for문 이중 반복문 - 별 찍기 본문

Java

[Java] for문 이중 반복문 - 별 찍기

itisminu 2023. 11. 12. 14:35
728x90
반응형
SMALL

이중반복문은 코드에서 흔히 사용된다.

기본적으로 언어를 배우면서도 많이 사용하게 되는데, 그 중 for문의 이중 반복문에 대하여 설명하겠다. 

내가 제일 좋아하는 for문!

 

  • 기본적인 형태
public class test {
    public static void main(String[] args) {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                // ...실행 코드...
            }
        }
    }
}

 

위처럼 for문 안에 다시 for문을 사용한다.

for문 안에 for문이 들어있기 때문에 들여쓰기로 for문 내부의 이중for문이라는 것을 명확하게 드러내야 한다.

그리고, 이중 for문에서는 for문의 중괄호를 꼭 사용해야 한다. (소스코드가 한줄 이상이므로.)

 

for문 내부의 이중for문은 보편적으로 j 변수를 사용한다.

for문은 바깥에서부터 안으로 i,j,k와 같은 변수를 사용한다.

다른 for문은 다른 변수를 사용해야 범위를 검사하는 데 있어서 오류가 발생하지 않는다. 별개의 반복문이기 때문이다.

 

예시를 통해 알아보자.

별 (*) 사각형 만들기
*****
*****
*****
*****
*****

 

package chap_04;

public class _08_NestedLoop {
    public static void main(String[] args) {
        for (int i = 0; i < 5; i++){
            for (int j = 0; j < 5; j++){
                System.out.print("*");
            }
            System.out.println();
        }

        System.out.println("----------------------");

    }
}

 

별 (*) 하나를 5번출력하고, 줄바꿈을 수행한 후에 5번 반복하면 5 x 5 사각형이 만들어지므로 위 코드처럼 작성할 수 있다.

(여기에서 println이 아닌 print를 사용한 이유는 별을 5개 출력하기까지는 줄바꿈이 필요없기 때문)

 

 

정상적으로 출력된다.

 

그럼 이번에는 사각형이 아닌 삼각형을 출력해보자.

별 (*) 왼쪽 삼각형 만들기
*
**
***
****
*****

 

사각형이 아니라 삼각형이다.

for문 하나는 5까지의 범위를 가질테고, 이중for문인 안쪽 for문은 순서대로 1, 2, 3, 4, 5개가 출력되도록 설계해야한다.

 

그럼 j의 범위를 어떻게 설정해야 할까 ?

package chap_04;

public class _08_NestedLoop {
    public static void main(String[] args) {

        for (int i = 0; i < 5; i++){
            for(int j = 0; j < i+1; j++){
                System.out.print("*");
            }
            System.out.println();
        }

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

 

그 방법은 i를 활용하는 법이다. i는 프로그램이 반복될 때마다 값이 변하고 있으므로 1,2,3,4,5의 순서로 변해야하는 j의 범위에 사용하기 딱 좋은 변수이다.

 

i는 처음에 0이므로, 첫번째 턴(i=0)에서 별을 하나 출력해야하는 j의 범위를 j<i+1이라고 정해둘 수 있다.

그리고 i가 다음 턴인 두번째 턴(i=1)에는 j의 범위가 j<i+1(1+1 = 2) 이므로 별이 두 번 출력될 것이다

이와 같은 방식으로 별이 삼각형 모양으로 출력되는 것이다.

 

 

 

다른 언어를 공부했다면 이 별 그리기 문제는 질리도록 봤을 것이다. 하지만 보지 못했다면 잘 공부해두자. 반복문의 기본 중에 기본이다.

728x90
반응형
LIST

'Java' 카테고리의 다른 글

[Java] Break문  (0) 2023.11.13
[Java] 구구단 만들기  (0) 2023.11.13
[Java] Do while문  (0) 2023.11.12
[Java] While문  (0) 2023.11.11
[Java] For 문  (0) 2023.11.11