문제
별찍기(4) (공백있는 직각삼각형)
*
**
***
****
*****
******
*******
********
*********
**********
for문(반복문)을 사용해 위 모양을 출력해보자 (총 10줄)
실행화면
코드
public class star4 {
public static void main(String[] args) {
int k = 0;
for(int j = 0; j<10; j++) {
for (int m = 9; m > j; m--) { //공백찍기 m(9개부터 하나씩 줄어듦)
System.out.printf(" ");
}
for (int i = 0; i <= k ; i++ //*찍기 변수 i(1개부터 하나씩 커짐)
System.out.printf("*");
}
k++;
System.out.printf("\n");
}
}
}
코드 설명(알고리즘)
int k = 0;
for(int j = 0; j<10; j++) {
for (int m = 9; m > j; m--) {
System.out.printf(" ");
}
for (int i = 0; i <= k ; i++) {
System.out.printf("*");
}
k++;
}
- m이 j보다 큰 동안 반복.
- i가 k보다 작거나 같은 동안 반복.
첫번째 실행(j=0)
m = 9, m = 8, m = 7, ....., m = 0
m = 9, 8, 7, 6, 5, 4, 3, 2, 1일 때 공백이 출력된다.(총 9번)
(k = 0)
i = 0, i = 1, i = 2, ....., i = 10
i = 0 일 때 *이 한번 출력된다.
→ 결과: *
→ ( "\n") 로 줄바꿈
두번째 실행(j=1)
m = 9, m = 8, m = 7, ....., m = 0
m = 9, 8, 7, 6, 5, 4, 3, 2 일 때 공백이 출력된다.(총 8번)
(k = 1)
i = 0, i = 1, i = 2, ....., i = 10
i = 0, 1 일 때 *이 한번씩 출력된다.(총 2번)
→ 결과: **
→ ( "\n") 로 줄바꿈
세번째 실행(j=2)
m = 9, m = 8, m = 7, ....., m = 0
m = 9, 8, 7, 6, 5, 4, 3 일 때 공백이 출력된다.(총 7번)
(k = 2)
i = 0, i = 1, i = 2, ....., i = 10
i = 0, 1, 2 일 때 *이 한번씩 출력된다.(총 3번)
→ 결과: ***
→ ( "\n") 로 줄바꿈
.
.
.
10번째 실행(j=9)
m = 9, m = 8, m = 7, ....., m = 0
m은 모두 j보다 작기 때문에 공백은 출력되지 않는다.
(k = 9)
i = 0, i = 1, i = 2, ....., i = 10
i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 일 때 *이 한번씩 출력된다.(총 10번)
→ 결과:**********
→ ( "\n") 로 줄바꿈
'프로그래밍 > Java' 카테고리의 다른 글
[자바] 배열을 입력받아 가장 큰 수 출력, 오름차순, 내림차순 정렬 (0) | 2019.07.15 |
---|---|
[자바] 별찍기 이등변삼각형(이중for문)(+알고리즘) -6 (0) | 2019.07.14 |
[자바] 별 찍기 뒤집힌 직각삼각형(이중for문)(+알고리즘) -3 (0) | 2019.07.14 |
[자바] 별 찍기 직각삼각형(이중for문)(+알고리즘) -2 (0) | 2019.07.13 |
[자바] 별 찍기 기본 (이중 for문) -1 (0) | 2019.07.13 |
[자바] 컴퓨터가 낸 숫자 맞추기(up down업다운 게임) (랜덤 함수 활용) (0) | 2019.07.13 |