본문 바로가기
  • 마침표 보다 쉼표를 나타내자
프로그래밍/JAVA

자바 마름모 별찍기로 그리기

by Y코더 2022. 11. 29.
728x90

마름모를 그려보자

우선 저모양 대로 코드를 짜보자

public class K2 {

	public static void main(String[] args) {
		
		for(int i=0; i<3; i++) { //3줄 생성 (2번째 값 i가 반복 횟수)
			for(int j=0; j<2-i; j++) { //공백 생성 (2번째 값 처음에 왼쪽 공백 갯수 - 1, 초기에는 0이므로 그값이 그대로 나옴)
				System.out.print(" ");
			}
			for(int j=0; j<2*i+1; j++) { //2번째 공식 : 2의배수 증가*반복횟수 + 1(홀수배열) 별찍기
				System.out.print("*");
			}
			System.out.println(); //줄넘김
		}// 프로그램 앞으로 벗어남
		for(int i=0; i<2; i++) { //2줄 생성 (2번째 값 i가 반복 횟수)
			for(int j=0; j<=i; j++) { //공백 생성
				System.out.print(" ");
			}
			for(int j=3; j>=2*i+1; j--) { //j가 별의 갯수 (2번째 공식 : 2의배수 증가*반복횟수 + 1(홀수배열) 별사라짐)
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

 

 

줄 갯수를 입력받아 출력해보자.

이번은 홀수만 입력 받도록 if문을 사용하였다.

import java.util.Scanner;
public class C {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		//변수 선언
		int a;
		
		//값 받기
		System.out.print("몇줄? >");
		a = scan.nextInt();
		
		if(a % 2 == 1) {
			//생성
			for(int i=0; i<a/2+1; i++) { //3줄 생성 (2번째 값 i가 반복 횟수)
				for(int j=0; j<a/2-i; j++) { //공백 생성 (2번째 값 처음에 왼쪽 공백 갯수 - 1, 초기에는 0이므로 그값이 그대로 나옴)
					System.out.print(" ");
				}
				for(int j=0; j<2*i+1; j++) { //2번째 공식 : 2의배수 증가*반복횟수 + 1(홀수배열) 별찍기
					System.out.print("*");
				}
				System.out.println(); //줄넘김
			}// 프로그램 앞으로 벗어남
			for(int i=0; i<a/2; i++) { //2줄 생성 (2번째 값 i가 반복 횟수)
				for(int j=0; j<=i; j++) { //공백 생성
					System.out.print(" ");
				}
				for(int j=a-2; j>=2*i+1; j--) { //j가 별의 갯수 (2번째 공식 : 2의배수 증가*반복횟수 + 1(홀수배열) 별사라짐)
					System.out.print("*");
				}
				System.out.println();
				scan.close();
			}
		}else if(a % 2 == 0) {
			System.out.print("홀수만 입력하시오... 짝수시,프로그램이 종료됩니다.");
			scan.close();
		}		
	}
}

 

728x90