작성
·
82
·
수정됨
답변 2
1
안녕하세요?
작성해주신 코드로도 원하는 결과물을 출력할 수 있습니다. 반복 횟수 또한 동일하기 때문에 비효율적인 요소는 없어요. 다만 인프런 AI 인턴의 답변처럼 마지막에 별(*)을 출력하고 줄바꿈하는 부분은 반복문 k 의 조건을 '작다' 에서 '작거나 같다' 로 바꿈으로써 조금 더 간소화할 여지가 있네요 😄
for (int i=0; i<3; i++)
{
for (int j=i; j<2; j++)
{
System.out.print(" ");
}
for(int k=0; k<=i; k++) // k < i 에서 k <= i 로 변경
{
System.out.print("*");
}
System.out.println(); // 줄바꿈만 수행
}
이중 반복문 학습을 이렇게 강의와 다르게 응용해주시는 것, 너무 좋은 학습 방법입니다 ^^ 또 다른 질문 생기면 언제든 글 남겨주세요!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. firebear93님!
올려주신 코드에서 이중 반복문을 이용하여 오른쪽으로 치우친 별 모양을 출력하는 부분에 대한 질문이네요. 이중 반복문을 통해 공백과 별을 출력하려고 하신 것은 올바르게 접근하셨습니다. 다만, 출력의 효율성과 코드의 가독성 측면에서 일부 개선을 할 수 있습니다.
현재 댓글처럼, 별을 매번 출력할 때마다 System.out.println("*");
를 사용하고 있는데, 이는 한 줄에 여러 개의 별을 출력하는 의도와 맞지 않을 수 있습니다. 일반적으로 System.out.print("*");
를 사용하여 줄바꿈 없이 출력한 다음, 각 행의 끝에서 System.out.println();
을 사용하여 줄바꿈을 합니다.
코드를 조금 더 보기 쉽게 작성하려면:
for (int i = 0; i < 3; i++) {
for (int j = i; j < 2; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
이렇게 수정하면 각 줄에서 공백을 출력한 후, 별을 한 번에 출력한 후 줄바꿈을 시행합니다. 이렇게 하면 코드의 의도가 명확해지면서 가독성도 좋아지게 됩니다.
관련된 질문에 대해 다른 분의 경험을 참고하시려면 데이터 스트림의 효율적인 활용법은 무엇인가요?를 살펴보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.