자바 for문 다이아몬드 - jaba formun daiamondeu

출력 결과
자바 for문 다이아몬드 - jaba formun daiamondeu
소스 코드
public class Star {

	public static void main(String[] args) {		
    
        for (int i = 1; i <= 3; i++) {
			// 상단 공백
			for (int j = 1; j <= 3 - i; j++) {
				System.out.print(" ");
			}
			// 상단 *
			for (int j = 1; j <= i * 2 - 1; j++) {

				System.out.print("*");
			}
			System.out.println();
		} //for

		for (int i = 2; i >= 1; i--) {
			// 하단 공백
			for (int j = 1; j <= 3 - i; j++) {
				System.out.print(" ");
			}
            
			// 하단 *
			for (int j = 1; j <= i * 2 - 1; j++) {

				System.out.print("*");
			}

			System.out.println();
		} //for


	} // main

}

JAVA 다이아몬드 별찍기.

소스코드 및 주석 )

public class Star {

public static void main (String[] args) {

//방법1: 공백따로 , 나머지 삼각형을 또한번 나누어서 이중 for문 사용(총 6파트로 나누어 생각)

//상단

System.out.println("방법 1------------");

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

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

System.out.print(" "); //공백

}

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

System.out.print("* "); //별반

}

for (int j=2; j<=i; j++) {

System.out.print("* "); //나머지 별반틈.

}

System.out.println();

}

//하단

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

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

System.out.print(" ");

}

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

System.out.print("* ");

}

for (int j=3; j>=i; j--) {

System.out.print("* ");

}

System.out.println();

}

//방법 2. 공백찍고, 나머지 별 한방에 채우기. (총 4파트로 나누어 생각. )

System.out.println("방법2 ------------");

// 상단

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

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

System.out.print(" "); //공백

}

for (int j=1; j<=i*2-1; j++) { //나머지 별 한방에채우기.

System.out.print("* ");

}

System.out.println();

}

//하단.

for(int i=4; i>0; i--) {    //하단

for (int j=4; j>=i; j--) {

System.out.print(" "); //공백

}

for (int j=1; j<=i*2-1; j++) {

System.out.print("* ");

}

System.out.println();

}

}

}

다이아몬드 만들기

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("원하는 중간 행 입력: ");
int row = Integer.parseInt(reader.readLine());
		
//상단-중간
for (int i=0; i<row; i++) {
    for (int j=1; j<row-i; j++) {
        System.out.print(" ");
    }
    for (int j=0; j<i*2+1; j++) {
        System.out.print("*");
    }
    System.out.println();
}
		
//하단(상단 뒤집기)
for (int i=row-1; i>0; i--) {
    for (int j=row-i; j>0; j--) {
        System.out.print(" ");
    }
    for (int j=i*2-1; j>0; j--) {
        System.out.print("*");
    }
    System.out.println();
}


//Output
원하는 중간 행 입력: 5
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *

[해설]

- 상단에서 중간값까지의 다중 for문 1개

- 하단(상단 뒤집기) 다중 for문 1개

- 피라미드, 역피라미드 다중 for문 알고리즘을 이용했고, 하단값만 조정해서 풀이했다.