대충벌레 블로그
728x90
반응형

 자바,java,반복문,for,star,별,기초 

 

 

반복문을 이용하여 다양한 별 찍기

이번 포스팅은 반복문을 이용하여 별 찍는 법에 대해서 작성해볼려고 합니다.

기초적인 코딩이므로 어떤식으로 작동을 하는지 알고 짜실수 있어야 합니다.

우선 문제만 보시고 직접코딩을 해보신후에 보시는것을 추천드립니다.

1
2


3 ★★★★★ 
★★★★★ 
★★★★★ 
★★★★★ 
★★★★★ 
4

★★

★★★

★★★★

★★★★★

5

★★★★★

★★★★

★★★

★★

6

☆☆☆☆★

☆☆☆★★

☆☆★★★

☆★★★★

★★★★★

7

★★★★★

☆★★★★

☆☆★★★

☆☆☆★★

☆☆☆☆★

 

 

Star 출력 [1-7]

Star1

검정별을 1개만 사용하고 반복문을 한번만 활용해서 ★★  이렇게 찍어봅시다.

public class Star1 {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++) {
			System.out.print("★");
		}
	}
}

별 5개를 찍을 것이기때문에 반복문을 5회 반복하고 가로로 출력할것이기 때문에 print()문을 사용하시면 됩니다.

Star2

1번과 같이 검정별을 1개만 사용하고 반복문을 한번만 활용해서 세로로 

찍어봅시다.

public class Star2 {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++) {
			System.out.println("★"); 
		}	} }

 

1번과 마찬가지로 별 5개를 찍을것이기 떄문에 1부터 5까지 반복하고 print()문이 아닌 println문을 사용하시면 됩니다.

Star3

★★★★★
★★★★★
★★★★★
★★★★★
★★★★★

 

검정별을 1개만 사용하고 이중 반복문을 써서 만들어봅시다.

public class Star3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<=5;i++) {
			for(int j=1;j<=5;j++) {
				System.out.print("★");
			}
			System.out.println("");
		}}}

 

안쪽 for문을 보시면 Star1과 같은 문장입니다. 그러면 가로로 ★★ 를 찍게 되겠죠

바깥쪽 반복문을 보게되면 안쪽반복문이 끝나게 되면 println()을 통해 줄넘김을 하게됩니다.

그러면 5*5짜리 별이 생기게 됩니다.

 

Star4

★★

★★★

★★★★

★★★★★

 

public class Star4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<=5;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("★");
			}
			System.out.println("");
		}
	}
}

우선 바깥쪽 반복문을 보게되면 단순히 5회반복 즉 5줄을 출력하는것은 알수있다.

안쪽 반복문을 보게 되면 첫번째 줄에는 별 한개 두번째 줄에는 별두개 이렇게 찍히기 때문에 조건으로 보면

안쪽 변수가 바깥쪽 변수의 값이랑 같거나 작을때 별을 출력해야 한다.

그러므로 i가 1이고 j가 1일때는 j<=i 조건에 부합하므로 별 한번출력후 j가 2가되면 조건에 맞지않기때문에 안쪽반복문을 빠져나가고 바깥쪽 반복문을 돌리게 됩니다.

 

Star5

★★★★★

★★★★

★★★

★★

public class Star5 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<=5;i++) {
			for(int j=5;j>=i;j--) {
				System.out.print("★");
			}
			System.out.println("");
		}
	}
}

4번이랑 아주 유사한 문제입니다. 바깥쪽은 바뀐것은 없고 안쪽 반복문의 조건만 바꿔주시면 됩니다.

이번엔 첫줄에 별 5개를 찍을 것이므로 j의 값이 i의 값보다 크거나 작을때 별을 출력해주시면 됩니다.

그러면 i의 값이 1씩 증가할수록 안쪽 반복문에서는 별 한개씩 줄어드는것을 확인하실수 있습니다.

같은 출력문 이지만 조건문을 바꿔서 작성하실수도 있습니다.

for(int i=5;i>=1;i--) {
	for(int j=1;j<=i;j++) {
		System.out.print("*");
	}
System.out.println();
}

바깥쪽 범위를 5에서 1로 감소하면서 안쪽의 범위상수를 i로 설정하는 방법입니다.

어떻게 짜든 상관은없지만 여러가지 방법이 있으니 몰랐다면 알아두는것도 좋습니다.

 

Star6

☆☆☆☆★

☆☆☆★★

☆☆★★★

☆★★★★

★★★★★

public class Star6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=1;i<=5;i++) {
			for(int j=5;j>=1;j--) {
				if(i>=j) {
					System.out.print("★");
				}else {
					System.out.print("☆");
				}
			}
			System.out.println("");
		}
	}
}

 

조건을 빼고 반복문에 별 출력문만 있다고 보시면 3번과 똑같습니다. 5*5 별이 출력되죠

근데 if문에서  바깥쪽 반복문 변수i가 안쪽 반복문 변수j보다 크거나 같을때는 검정별 작을때는 흰별을 출력하게됩니다.

즉 안쪽 반복문은 5부터 시작하게 되므로 i가 1일때 j는 5부터2까지 흰별을 찍게되고 j가 1이 되면 검정별을 찍게됩니다. 

이것도 마찬가지로 조건을 바꿔서 같은 결과가 나오게 할수 있습니다.

if(i<j) {
	System.out.print("☆");
}else {
	System.out.print("★");
}

i값이 j보다 작을때는 흰별을 

i값이 j값보다 같거나 클때는 검정별을 찍게됩니다.

 

Star7

★★★★★

☆★★★★

☆☆★★★

☆☆☆★★

☆☆☆☆★

 

이 문제는 위의 문제와 상당히 유사한 문제입니다.

본인 스스로 한번 연습해보시는걸 추천해드립니다.

 

 

마무리

자바 공부를 시작하게 되면 가장 기초적인 반복문과 조건문은 잘 공부해두는게 좋습니다.

 

 

관련글

 
 

 

 

공감,구독 부탁드립니다.

궁금하신점이 있으시다면 톡이나 댓글로 물어봐주세요.

http://pf.kakao.com/_KSxdLT

 

반응형
profile

대충벌레 블로그

@대충벌레

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!