○ 과제
다중 for 문을 활용한 별찍기 실습
다음과 같은 내용이 출력될 수 있도록
반복문의 중첩 구문을 작성하여 프로그램을 구현한다.
실행 예)
*
***
*****
*******
*********
*******
*****
***
*
public class Test063
{
public static void main(String[] args)
{
// 주요 변수 선언
int i,j,k; //-- i : 줄(행) 수를 나타나는 변수, j : 공백을 출력하는 변수, k : *을 찍어내는 변수
for (i=1 ;i<=9 ;i++ ) //-- i(행)가 9보다 작거나 같아질 때 까지 1부터 1씩 커지면서 반복한다. => 9줄 출력
{
if (i<=5) //-- i의 값이 5보다 작거나 같을 경우에는 아래의 반복문을 수행한다.
{
for (j=1 ;j<=5-i ;j++ ) //-- j의 값이 1부터 5-i 보다 작거나 같아질 때 까지 1씩 증가하며 → 공백이 5-i 개로 출력되고 있기 때문에
{
System.out.print(" "); //-- 공백을 출력한다.
}
for (k=1 ;k<=2*i-1;k++ ) //-- k의 값이 부터 (2*i-1) 보다 작거나 같아질 때 까지 1씩 증가하며 → *이 홀수개로 출력되는 규칙이 있기 때문에 2*i-1
{
System.out.print("*"); //-- *을 출력한다.
}
}
else //-- 이외의 경우에는 (i의 값이 5보다 큰 경우에는)
{
for (j=1 ;j<=i-5 ;j++ ) //-- j의 값이 1부터 i-5 보다 작거나 같아질 때 까지 1씩 증가하며 → i 값이 6일 때 부터는 공백이 i-5 개로 출력되고 있기 때문
{
System.out.print(" "); //-- 공백을 출력한다.
}
for (k=1; k<=19-(2*i) ;k++) //-- k의 값이 19-(2*i) 보다 작거나 같아질 때 까지 1씩 증가하며
{
System.out.print("*"); //-- *을 출력한다.
}
}
System.out.println();
}
}
}