인프런 커뮤니티 질문&답변

김대경님의 프로필 이미지
김대경

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

정리

피라미드를 찍을 때 for을 두개만 이용해서 가능하시다고 하셨는데

작성

·

241

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
피라미드를 찍을 때 for을 두개만 이용해서 가능하시다고 하셨는데. 어떻게 해야하나요?

처음에 for을 4개를 썼다가 강사님 말씀 듣고 for을 3개로 줄였는데, 도무지 2개로는 못하겠슴다...

아래는 제가해본 코드입니다.

package loop;

public class LoopEx8 {
   /* public static void main(String[] args) {
        int rows = 9;
        for (int i = 1; i <= rows; i++ ) {
            for (int k = rows - i; k >= 1; k--) {
                System.out.print("  ");
            }

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

    } */
   public static void main(String[] args) {
       int rows = 9;
       for (int i = 1; i <= rows; i++) {
           for (int j = rows; j >= i + 1; j--) {
               System.out.print("  ");
           }
           System.out.print("* ");
           for (int k = i; k >= 2; k--) {
               System.out.print("* * ");
           }
           System.out.println();
       }
   }
}

답변 1

1

안녕하세요. 김대경님, 공식 서포터즈 y2gcoder입니다.

피라미드를 찍을 때 for을 두개만 이용해서 가능하시다고 하셨는데. 어떻게 해야하나요?

=> 혹시 어떤 부분을 보고 이렇게 생각하셨는지 말씀해주시면 감사하겠습니다! 혹시 제가 남긴 답변(클릭)을 보고 말씀하시는 거라면 for 문 2개가 아니라, 이중 for 문을 사용할 수 있으면 가능하다는 취지로 말씀드린 것이었습니다! 오해하셨다면 죄송합니다.

image이중 for문이라는 것은 for문이 총 2개가 아니라 작성해주신 것처럼 for문 내에 for문이 있는 2중첩 for문을 말씀드린 것입니다!

저도 오랜만에 피라미드 별찍기를 구현해본 코드를 올려보겠습니다!

public class Pyramid {
    public static void main(String[] args) {
        int rows = 5;

        for(int i=0; i<rows; i++) {
            for(int j=0; j<rows-i-1; j++) {
                System.out.print(" "); // 공백 출력
            }
            for(int k=0; k<(2*i+1); k++) {
                System.out.print("*"); // 별 출력
            }
            System.out.println(); // 줄바꿈으로 다음 줄로 이동
        }
    }
}

 

 

 

감사합니다.

김대경님의 프로필 이미지
김대경

작성한 질문수

질문하기