Java기초
[JAVA]for문활용 별찍기
jackypark
2022. 6. 22. 23:14
for문을 활용하여 다양한 모양 만들어보기.
1.
****
****
****
****
for(i=0;i<4;i++) {//열의 길이
for(j=0;j<4;j++) {//행의 길이
System.out.print("*");//별출력
}
System.out.println();//줄바꿈
}

2.
*
**
***
for(i=1;i<4;i++) {//열의길이 i=1둔이유: i=0으로 설정하면 밑에있는 for문이 돌때 맨첫번째 열이 공백으로 남게되어서 뛰어지게 됨
for(j=0;j<i;j++) {//행의길이
System.out.print("*");//별출력
}
System.out.println();//줄바꿈
}


3.
*
**
***
for(i=0;i<3;i++) {
for(j=1;j<3-i;j++) {// 공백이 들어가는 패턴이 i번째열일때 j행에서 공백이 3-i보다 작을때 생성
System.out.print(" ");
}
for(j=0;j<i+1;j++) {// 별이 들어가는 패턴이 i번째열일때 j행에서 별이 i+1보다 작을때 생김
System.out.print("*");
}
System.out.println();//i번째열 끝에서 줄바꿈
}

4.
*
***
*****
for(i=1;i<4;i++) {
for(j=3;j>i;j--) {//한줄씩 내려갈때 마다 공백이 1칸식 줄음
System.out.print(" ");
}
for(j=0;j<i*2-1;j++) {//한줄씩 내려갈때마다 별은 2개씩 증가 -1한이유는 내가i=1로 시작했기때문
System.out.print("*");
}
System.out.println();//i열 끝날때 줄바꿈
}

5.
*
***
*****
***
*
for(i=1;i<4;i++) {// 위삼각형
for(j=3;j>i;j--) {//한줄씩 내려갈때 마다 공백이 줄음
System.out.print(" ");
}
for(j=0;j<i*2-1;j++) {//한줄씩 내려갈때마다 별개수가 2개씩더 늘음
System.out.print("*");
}
System.out.println();
}
for(i=2;i>0;i--) {//아래 삼각형-위삼각형 식을 뒤집어 생각
for(j=3;j>i;j--) {//한줄씩 내려갈때마다 공백 증가
System.out.print(" ");
}
for(j=0;j<i*2-1;j++) {//한줄씩 내려갈때마다 별개수가 2개씩 줄음 why?:i--이기때문
System.out.print("*");
}
System.out.println();
}

6.홀수를 입력받아서 다이아몬드를 출력해라(loop문을 2개만 사용하시오)
System.out.println("홀수를 입력하시오");
Scanner sc=new Scanner(System.in);
int odd=sc.nextInt();
int s;
s=odd/2; //다이아몬드 중간부분
for(i=0;i<odd;i++) {
for(j=0;j<(odd-s);j++) {
if(j>=s) {
System.out.print("*");//별출력
}else {
System.out.print(" ");//공백출력
}
}
if(i<(odd/2)) {//다이아몬드 위부분을 위해
s-=1;
}else {//다이아몬드 아래부분을 위해
s+=1;
}
System.out.println();
}

몰입형 2일차... 오랜만에 한 별패턴 문제 역시나 머리아프다...