중첩
for문
을 이용하여 다음과 같은 결과가 나오도록 별찍기를 수행하시오.
*
* * *
* * * * *
* * * * * * *
* * * * * * *
* * * * *
* * *
*
public class Si {
public static void main(String args[]) {
for ( int i = 1; i <= 4; i++ ) {
for ( int j = 1; j <= (i*2)-1; j++ ) {
System.out.print("* ");
}
System.out.println();
}
for (int i = 0; i <= 3; i++ ) {
for (int j = 7-(i*2); j >= 1; j--) {
System.out.print("* ");
}
System.out.println();
}
}
}
위쪽 중첩 for문은 아래의 부분을,
*
* * *
* * * * *
* * * * * * *
아래쪽 중첩 for문은 아래의 부분을 출력하도록 하였다.
* * * * * * *
* * * * *
* * *
*
for ( int i = 1; i <= 4; i++ ) {
for ( int j = 1; j <= (i*2)-1; j++ ) {
System.out.print("* ");
}
System.out.println();
}
4줄이 출력되도록 i
가 1
부터 4
까지 for문
이 반복되도록 설정한다.
출력될 별의 개수를 1
부터 2
씩 증가하도록 (i*2)-1
로 별이 1
개 3
개 5
개 7
개로 출력되도록 한다.
한 줄 출력을 끝낼 때마다 줄바꿈을 한다.
for (int i = 0; i <= 3; i++ ) {
for (int j = 7-(i*2); j >= 1; j--) {
System.out.print("* ");
}
System.out.println();
}
4줄이 출력도도록 i
가 0
부터 3
까지 for문
이 반복되도록 설정한다.
여기서 i
의 초깃값을 0
으로 준 이유는 아래에서 나올 것이다.
출력될 별의 갯수인 j
는 7
부터 for문
이 새로 반복될 때마다 2
씩 감소 되어야 한다. 따라서 처음에는 7-0
을 해야 j
의 값, 즉 출력될 별의 갯수가 7
개가 되므로 곱해져서 0
이 나오도록 i
의 초깃값을 0
으로 설정한 것이다.
이렇게 별이 7
개 5
개 3
개 1
개로 출력된다.
한 줄 출력을 끝낼 때마다 줄바꿈을 한다.