티스토리 뷰

for문을 활용해서 다양한 패턴을 만들 수 있다. 

1) 정사각형 패턴

		for(int i=0;i<4;i++) // i가 4보다 작을 때 for문이 실행된다.
			{
			for(int j=0;j<4;j++)//j가 4보다 작을 때 for문이 실행된다.
				{
				System.out.print(" *");// *을 화면에 출력한다 j가 4번 루프하므로 4번 화면에 출력한다.
			}
			System.out.println("");//i가 4번 루프하므로 4번 줄을 바꾼다.
		}

정사각형의 패턴을 보기위한 코드는 다음과 같다.

*정사각형 패턴의 실행화면

저번에 작성했던 다중포문의 성질을 이용하면 쉽게 작성 할 수 있다.

 조금 자세히 설명하자면 i for문에서,i의 값이 0 일때 i는 4보다 작기 때문에,다중 for문의 원리로 j for문이 실행됐고

  j for의 조건을 만족하는 총 4번의 루프를 타는 과정에서 별이 4번 출력됐다.

 j값이 더 이상 증가 할 수 없어 j for을 벗어나고 i 포문이 실행되어 println 함수가 출력됐다.

이 과정을 4번 반복한 결과 값이 정사각형 패턴이다.

2) 삼각형 패턴 

	for(int i=1;i<5;i++)//i=1로 지정했다 이유는 삼각패턴을 만들기 위해 j값과 i값을 비교연산해야 했기때문.
		{
		for(int j=0;j<i;j++)//i값에 따라 루프 할 수 있는 횟수가 바뀐다. 1,2,3,4 횟수로 루프하도록 코딩
			{
			System.out.print(" *");
		}
		System.out.println("");
		}

 

빈 공간이 없는 구조이기 때문에 간단하게 별의 갯수만 행에따라 삼각형 구조를 보이게 코딩했다.

 다음 패턴 부터는 빈 공간이 존재하는데 이는 그림을 첨부해 설명하려고 한다.

3)삼각형 패턴 2.

삼각형 패턴과 패턴자체는 비슷하지만, 앞에 빈 공간이 있다.

 이런 구조를 가진 패턴은, 별을 출력하기전에 앞에있는 공간만큼 빈 공간을 만들어 채워줘야 한다. 

그렇기 때문에 패턴 자체는 비슷하지만 코딩에 있어서는 조금 더 복잡하다. 

그 이유는 빈 공간의 출력과 별 모양의 출력을 각각 해줘야 하기 때문이다. 

for(int i=1;i<5;i++)//행의 수
		{
			for(int j=4;j>i;j--)/*i값을 활용해서, j값이 루프함에 따라 점점 작아지게 설정
            j값을 공백의 갯수로 지정했기때문에 위 그림의 구조를 갖게 하기 위해서 
            3번,2번,1번 루프하도록 변수 값과 식을 코딩했다.*/
            {
				System.out.print(" ");
			}
			for(int j=0;j<i;j++) /*i값을 활용해서, j값이 루프함에 따라 점점 커지게 설정
            j값을 공백의 갯수로 지정했기때문에 위 그림의 구조를 갖게 하기 위해서 
          1번 2번 3번 루프하도록 코딩 */{
				System.out.print("*");
			}
			System.out.println("");

		}
        /*for문 안에 2개의 for문이 있는 다중 for문 구조인데, 빈 공간을 만드는게 우선이라 빈 공간 
        for문을 앞에 뒀다.*/

 

 

실행 화면 (import 함수는 제외하면 된다.)

 4) 정삼각형 패턴

 정삼각형의 패턴은 삼각형 패턴2.와 거의 비슷한 방식으로 진행된다.

구조 자체는 아래의 그림과 같이 뒤에도 빈 공간이 있지만, 앞의 빈 공간과 다르게 뒤의 빈 공간은

따로 채워주지 않아도 된다.

정삼각형 패턴의 생성 구조 빨간 부분은 생성하지 않아도 된다.

  정확한 이유는 정삼각형 패턴을 보기 위해서는 앞의 빈공간만 생성하고 ,뒤의 빈 공간은 따로 생성하지 않아도

패턴을 보는 입장에서는 생성한 것과 동일하기 때문에 

굳이 코드를 늘릴 이유는 없기 때문이다.

 삼각형 패턴 2.에 사용했던 코드를 그대로 가져와서 조금만 수정해보겠다.

for(int i=1;i<5;i++)//행의 수
		{
			for(int j=4;j>i;j--)/*i값을 활용해서, j값이 루프함에 따라 점점 작아지게 설정
            j값을 공백의 갯수로 지정했기때문에 위 그림의 구조를 갖게 하기 위해서 
            3번,2번,1번 루프하도록 변수 값과 식을 코딩했다.*/
            {
				System.out.print(" ");
			}
			for(int j=0;j<i;j++) /*i값을 활용해서, j값이 루프함에 따라 점점 커지게 설정
            j값을 공백의 갯수로 지정했기때문에 위 그림의 구조를 갖게 하기 위해서 
          1번 2번 3번 루프하도록 코딩 */{
				System.out.print("*");
			}
			System.out.println("");

		}
        /*for문 안에 2개의 for문이 있는 다중 for문 구조인데, 빈 공간을 만드는게 우선이라 빈 공간 
        for문을 앞에 뒀다.*/

여기 수정해야하는 값은 별의 갯수이다. 별의 갯수가 1씩 증가하게 했는데 위의 그림대로 구조를 갖추려면 1개로 시작해 2개씩 증가해야한다.  

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

수정을 해줘야 하는 부분은 여기 뿐이다. 

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

이런식으로 수정했다. 여기서 j값을 1로 바꾼이유는  j값이 0일 경우에 실행하면 i*2라는 조건을 추가했기 때문에 for문이 2단위로 실행되기 때문이다. 원하는 별의 출력 횟수는 2,4,6,8가 아니라  1,3,5,7이기때문에 j값을 1로 바꾸었다.

실행화면 정삼각형 패턴이 나온다.

                                              

   다이아몬드 패턴은 복잡해서 1.에서는 간단한 패턴들만 정리해뒀다.

 2.에서는 다이아몬드 패턴만 분석해서 올릴예정이다.                            

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함