ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바] 별만들기
    Web/소스코드 2019. 4. 17. 12:39

    자바 코드로 별을 모양을 만들어 찍는 것을 해보았다.

    우선, 별이 어디에 표시되는지 배열을 그려보았다.

    첫번째, 

    (0,0) * (0,1) (0,2) 첫번째
    (1,0) * (1,1) * (1,2) 두번째
    (2,0) * (2,1) * (2,2) * 세번째

     

    자세히 보면 규칙성이 보인다.

    (행, 열)

    첫번째 회전 (0행, 0열)

    두번째 회전 (1행, 0~1열)

    세번째 회전 (2행, 0~2열) 

    이중 for문을 사용할 것인데, 행에는 i값을 열에는 j값을 넣겠다. (i와 j는 변수명으로 이름은 달라도 상관없겠다.)

     

    이걸 토대로 구성한 메소드가 mission2() 이다. 

    public class MadeStar {
    	public static void main(String[] args) {
    		mission2(); // 삼각형
    		System.out.println("----------------");
    		for (int i = 0; i < 3; i++) { // 역삼각형
    			for (int j = 0; j < 3 - i; j++) {
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    	}
    	public static void mission2() {
    		for (int i = 0; i < 3; i++) {
    			for (int j = 0; j < i + 1; j++) {
    				System.out.print("*");
    			}
    			System.out.println();
    		}
    	}
    }

    mission2()를 보자.

    i값은 0부터 2까지 실행된다.

    j값은 0부터 i+1까지 실행된다.

     

    디버깅을 해보자.

     

    i가 0일때,

    y는 0+1까지 실행되므로 0이 출력된다.

    (i,y)=(0,0)

     

    i가 1일때,

    y는 1+1까지 실행되므로 0,1이 출력된다.

    (i,y)=(1,0) (1,1)

     

    i가 2일때,

    y는 2+1까지 실행되므로 0,1,2가 출력된다.

    (i,y)=(2,0) (2,1) (2,2)

     

    뭔가 낫익지 않나?

     

    (행, 열)

    첫번째 회전 (0행, 0열)

    두번째 회전 (1행, 0~1열)

    세번째 회전 (2행, 0~2열) 

    (0,0) * (0,1) (0,2) 첫번째회전(i=0)
    (1,0) * (1,1) * (1,2) 두번째회전(i=1)
    (2,0) * (2,1) * (2,2) * 세번째회전(i=2)

     

    반응형

    댓글

Designed by Tistory.