Java/Test

Java Test.3 - 별찍기

Marmellata 2023. 3. 17. 17:51
import java.util.Scanner;

public class StarTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println(" 1. 정사각형\n 2. 직삼각형\n 3. 역직삼각형\n 4. 피라미드\n 5. 다이아몬드\n 6. 종료\n\n");
			System.out.print("메뉴 선택을 숫자로 입력해주세요 : ");
			int input = sc.nextInt();
			if (input == 1) {
				System.out.print("원하는 사이즈의 숫자를 입력해주세요 : ");
				int size = sc.nextInt(); // size 변수에 원하는 값을 입력 받는다.
				System.out.println("\n\n");
				for(int i = 0; i<size; i++) { // size 만큼 개행 반복
					for(int j=0; j<size; j++) { // size 만큼 * 입력 반복
						System.out.print("*");
					}
					System.out.println("");
				}
				System.out.println("\n\n");
			}
			else if (input == 2) {
				System.out.print("원하는 사이즈의 숫자를 입력해주세요 : ");
				int size = sc.nextInt();
				System.out.println("\n\n");
				// * 이 한개씩 증가하면서 개행으로 보낸다. 라는 식으로 시도
				for (int i = 0; i<size; i++) { // size 만큼 개행 반복
					for (int j = 0; j <= i; j++) { // for문내 i 만큼 * 입력을 반복
						System.out.print("*");
					}
					System.out.println("");
				}
				System.out.println("\n\n");
			}
			else if (input == 3) {
				System.out.print("원하는 사이즈의 숫자를 입력해주세요 : ");
				int size = sc.nextInt();
				System.out.println("\n\n");
				// size 만큼 * 을 입력했다가, * 하나씩 감소하며 개행하는 식으로 시도
				for (int i = 0; i<size; i++) { // size 만큼 개행 반복 및 별 입력 카운트
					for (int j = size; j > i; j--) { // size 만큼 공백 입력후 -- 씩 감소
						System.out.print(" ");
					}
					for (int u = 0; u <= i; u++) { // 공백 입력 뒤에 "*" 입력을 하나씩 증가 반복
						System.out.print("*");
					}
					System.out.println(""); // 공백 + "*" 입력뒤에 개행
				}
				System.out.println("\n\n");

			}
			else if (input == 4) {
				System.out.print("원하는 사이즈의 숫자를 입력해주세요 : ");
				int size = sc.nextInt();
				System.out.println("\n\n");
				for (int i = 0; i <= size; i++) {
					for (int j = size; j >= i; j--) { // 피라미드 좌측 공백 입력
						System.out.print(" ");
					}
					for (int k = 0; k <= i*2; k++) { // 피라미드의 "*" 입력 의도
						System.out.print("*");
					}
					System.out.println("");
				}
			}
			else if (input == 5) {
				System.out.print("원하는 사이즈의 숫자를 입력해주세요 : ");
				int size = sc.nextInt();
				for (int i = 1; i <= size; i++) {//상단 다이아몬드
					for (int j = 0; j < size-i; j++) { // 상단 공백
						System.out.print(" ");
					}
					for (int j = i*2-1; j >= 1; j--) { // 상단 별
						System.out.print("*");
					}
					System.out.println();
				}
				for (int i = 1; i <= size; i++) { // 하단 다이아몬드
					for (int j = 0; j < i; j++) { // 하단 공백
						System.out.print(" ");
					}
					for (int j = i+1; j <= (2*size-i)-1; j++) { // 하단 별
						System.out.print("*");
					}
					System.out.println();
				}
			}
			else if (input == 6) {
				System.out.println("프로그램을 종료 합니다.");
				break;


			}
			else {
				System.out.println("\n잘못된 입력 입니다.\n");
			}
		}

	}

}

출력 초기 화면

 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 :

각 메뉴 출력 결과물

더보기
 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 1
원하는 사이즈의 숫자를 입력해주세요 : 5



*****
*****
*****
*****
*****



 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 2
원하는 사이즈의 숫자를 입력해주세요 : 5



*
**
***
****
*****



 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 3
원하는 사이즈의 숫자를 입력해주세요 : 5



     *
    **
   ***
  ****
 *****



 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 4
원하는 사이즈의 숫자를 입력해주세요 : 5



      *
     ***
    *****
   *******
  *********
 ***********
 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 5
원하는 사이즈의 숫자를 입력해주세요 : 5
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
     
 1. 정사각형
 2. 직삼각형
 3. 역직삼각형
 4. 피라미드
 5. 다이아몬드
 6. 종료


메뉴 선택을 숫자로 입력해주세요 : 6
프로그램을 종료 합니다.

별 찍기 과제로 나왔던 걸 작성해봤습니다.

불필요한 부분, 좀더 간결하게 작성할 수 있는 부분이 있을겁니다.

 

많은 조언 부탁드리겠습니다.