안녕하세요.
이 글에서는 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 |
안녕하세요.
이 글에서는 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 |