dev/java

[Java] for문을 이용한 * 별 계단식 출력하기

2019. 10. 27. 15:08

안녕하세요.

이 글에서는 for문을 이용하여 * (별)을 계단식으로 출력하는 방법에 대해서 정리해보려고 합니다.

 

먼저 코드는 다음과 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
public class Main{
    public static void main(String[] args){
             
        for (int i = 1; i <= 5; i++) {
            for (int j = 0; j < i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
 

 

다음과 같이 컴파일을 한다면 결과는 과연 어떨까요?

제목에 언급해드린 것 처럼 다음과 같이 계단식으로 출력이 됩니다.

 

 

 

자 그러면 왜 그런지 알아보겠습니다.

 

먼저 for문의 구조는 다음과 같습니다.

 

for(초기식; 조건식; 증감식){

}

 

초기식은 for반복문의 시작 값이고,

조건식은 언제까지 반복을 할 것인지에 대한 조건을 거는 것이고,

증감식은 어떠한 방식으로 증감할건지에 대해서 작성합니다.

 

그럼 한번 코드를 볼까요?

 

for (int i = 1; i <= 5; i++) {

 

첫번째 for문 입니다.

 

초기식: int i = 1

→ for문의 시작을 작성하는 부분입니다. 먼저 정수 i 라는 변수에 숫자 1부터 시작한다는 의미입니다.

 

조건식: i <= 5

→ for문의 조건을 작성하는 부분입니다. 변수 i는 5 이하여야 한다라는 의미입니다.

 

증감식: i ++ 

→ for문의 증감방식을 작성하는 부분입니다. 변수 i는 ++ 즉 하나의 실행이 끝나면 조건식이 맞을때 까지 1씩 증가한다는 의미 입니다. (i++은 i = i + 1 과 같습니다.)

 

이것을 정리해보면 다음과 같습니다.

정수 i의 시작 값은 1이고, i의 값이 5보다 같거나 작을때 까지, i++ 즉 1씩 증가를 하게 됩니다.

1로 시작하고 수행이 끝나면 2, 3, 4로 점차 증가하여 5까지 증가하게 됩니다.

 

하지만 증가하기전에 for문이 하나가 더 있습니다.

 

두번째 for문 입니다.

 

두번째 for문 같은경우는 일단 첫번째 for문의 첫번째 실행동작이 끝나기 전에 작동된다고 생각하시면 됩니다.

 

먼저 저 식을 살펴보면 다음과 같습니다.

 

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

 

일단 for문을 파헤쳐 보면,

 

초기식: int j = 0

→ 정수 j는 0이라는 시작 값을 갖습니다.

 

조건식: j < i

→ j는 i보다 작아야 한다는 조건이 있습니다.

 

증감식: j++

→ j는 ++ 즉 1씩 커집니다.

 

System.out.print("*");
→ * 를 출력하라

 

 

이것을 정리해보면 다음과 같습니다.

 

먼저 말씀드린것처럼 컴파일이 실행됐다는 가정하에 첫 for문에 의해 현재 i의 값은 1이라고 가정 합시다.

첫 for문이 다음 2로 넘어가기전, 현재 두번째 for문이 실행되는데 조건에 맞게 되면 해당되는 변수의 개수 만큼 *를 출력합니다.

 

즉 j는 0으로 시작하며 j가 i보다 작을때 j는 1씩 증가하니,

 

i의 초기값은 1이므로 일단 j는 무조건 한번 *(별)을 출력해냅니다.

그리고 1이 증가하여 j의 값은 1이 되는데, 1은 i의 값인 1보다 작지 않고 같으니 두번째 for문은 여기서 종료 됩니다.

즉 하나의 별을 출력하고 두번째 for문은 끝나고 다음 수행문을 실행합니다.

 

System.out.println();

 

→ 는 println에 공백을 줌으로써 그저 한줄을 띄우라는 의미 입니다.

 

즉 위에서 i값이 1일때 두번째 for문으로 인해 *를 하나 출력하고, 줄을 띄우게 되겠네요.

 

그럼 i값이 2면, 두번째 for문에선 0이상의 숫자 중 2보다 작은 수는 0과 1이니 *를 2개 출력하고, 줄을 띄우게 되고

 

이 과정이 반복하게 됩니다.

 

그러므로 5라고 적은 자리에 원하시는 숫자를 넣으시면 원하는 층까지의 * 계단을 만드실 수 있습니다.

 

 

* 참고로 두번째 for문과 바로위에 println은,

첫번째 for문안에 속해있는 관계로 첫번째 for문이 완전히 끝나기전까지 반복적으로 수행하게 됩니다.

 

 

 

'dev > java' 카테고리의 다른 글

[Java] 자바에서 "(큰따옴표), '(작은따옴표), /(역슬래쉬) 가 출력안된다면?  (0) 2019.10.22
[Java] 문장 출력하기 (System.out.println("");)  (0) 2019.10.18
[Java] Eclipse 설치하기 (jdk-13.0.1, 환경변수 설정법)  (0) 2019.10.17
'dev/java' 카테고리의 다른 글
  • [Java] 자바에서 "(큰따옴표), '(작은따옴표), /(역슬래쉬) 가 출력안된다면?
  • [Java] 문장 출력하기 (System.out.println("");)
  • [Java] Eclipse 설치하기 (jdk-13.0.1, 환경변수 설정법)
leneu
leneu
leneu
dev_leneu
leneu
전체
오늘
어제
  • 전체 글 (42)
    • dev (26)
      • java (4)
      • javascript (3)
      • spring (3)
      • react-native (1)
      • python (0)
      • algorithm (5)
      • sql (1)
      • nas (2)
      • tool (2)
      • certification (1)
      • others (4)
    • os (9)
      • windows (3)
      • mac (6)
    • life (7)
      • 취업성공패키지 (4)
      • photos (2)
    • review (0)

인기 글

태그

  • Nas
  • macos
  • WSL2
  • Git
  • 백준
  • jdk
  • 취성패
  • Spring
  • springboot
  • homebrew
  • println
  • AppleSilicon
  • 별찍기
  • .m2
  • DS220+
  • 백준코딩
  • Oracle11g
  • sqldeveloper
  • 시놀로지
  • Java
  • 구글
  • 국가기간전략산업직종훈련
  • couldnotresolve
  • 길고양이
  • Mac
  • 환경변수
  • JPA
  • HRD
  • for문
  • 취업성공패키지

최근 댓글

최근 글

hELLO · Designed By 정상우.
leneu
[Java] for문을 이용한 * 별 계단식 출력하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.