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();//줄바꿈
		}

실행결과
i=0일때 실행결과

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일차... 오랜만에 한 별패턴 문제 역시나 머리아프다...