import java.util.Scanner;
public class star {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String star = "*";
String result = "";
System.out.print("원하는 과제를쓰세요 1~6 : ");
int num = sc.nextInt();
switch (num){ //과제번호를 입력하면 출력하는 형식
case 1:
System.out.println(one(star, result));
break;
case 2:
System.out.println(two(star, result));
break;
case 3:
System.out.println(three(star, result));
break;
case 4:
System.out.println(four(star, result));
break;
case 5:
System.out.println(five(star, result));
break;
case 6:
System.out.print("출력할 마름모의 값을 입력하시오 : ");
int number = sc.nextInt();//마름모의 최대별값 입력받
if (number % 2 == 1) {//홀수일 경우 6번 과제 출력
System.out.println(six(number, result));
break;
}else {//홀수만 입력받기
System.out.println("홀수만 입력해주세요!");
break;
}
default://과제번호가 없을경
System.out.println("잘못 입력하였습니다.");
}
}
//모든 메소드는 "*"과 "" 을 가지고 result에 별을 추가하는 방식
public static String one(String star,String result) {
for(int i = 1; i<4; i++) {
for(int j = 1; j <5; j++) {
result += star;
//result에 별을 추가하는작업을 4번하기
}
result += "\n";
//직사각형을 위해 줄바꿈
}
return result;
}
public static String two(String star, String result) {
for(int i = 1;i<4;i++) {
for(int j = 0;j < i;j++) {
//j 반복문에 들어올때마다 i가 커짐 -> 별을 추가하는 작업이 추가됨
result += star;
}
result += "\n";
}
return result;
}
public static String three(String star, String result) {
for(int i = 1;i < 4;i++) {
//마름모의 높이만큼 반복
for(int j = 3-i; j>0; j--) {
// 높이가 3이고i가 1씩 커질때마다 공백이 줄어듬
result += " ";
}
result += star.repeat(i);
//repeat 함수는 파라미터만큼 String을 반복해줌
result += "\n";
}
return result;
}
public static String four(String star, String result) {
int j = 2;
//높이가 고정되있으므로 공백을 2로 고정시키고 반복문 종료시마다 한개씩 줄어듬
for(int i = 1; i<=5; i+=2) {
result += " ".repeat(j);
result +=star.repeat(i);
result += "\n";
j--;
}
return result;
}
public static String five(String star, String result) {
int j = 2;
int l = 3;
for(int i = 1; i<=5; i+=2) {
result += " ".repeat(j);
result +=star.repeat(i);
result += "\n";
j--;
}//마름모 최대값까지 추가
for(int k=1; k<3;k++) {
//k를 공백갯수로 잡고 마름모 밑부분 추가
result += " ".repeat(k);
result += star.repeat(l);
result += "\n";
l -=2;
}
return result;
}
public static String six(int num,String result) {
int a = num/2; // num/2를 하면 소수점은 없어지기 때문에 공백값으로 사용
int l = num/2; // num/2 는 마름모 밑부분 행의 갯수와 동일
for (int i=1; i<=num; i+=2) {
result += " ".repeat(a);
result += "*".repeat(i);
result += "\n";
a--;
}
for(int k=1;k<l+1;k++) {
num -= 2;
result += " ".repeat(k);
result += "*".repeat(num);
result += "\n";
}
return result;
}
}