개발/JAVA

JAVA / [혼공]While문으로 구구단 만들기

코인아님 2022. 12. 22. 12:12

지금까지 if, for문은 어느정도 이해가 갔지만 while문은 쓰긴 써도 정확히 이해가 가지 않았다!

그렇게 해서 혼자 만들어 본 구구단!

 

1차시도

...? 왜이러지

2차시도

일단 이건 무조건 아닌 것 같다...

3차시도

 

얘도 일단 아닌 것 같다....

 

정답이랑 가장 비슷했던 1차시도로 돌아가서 고쳐야겠다고 생각했다.

1차시도 코드

    int a = 1;
    int b = 1;
    while (a < 9) { //2~ 9단 만들기
        a++;
        System.out.println(a + "단");

        while (b <= 9) {

            System.out.println(a + " X " + b + " = " + (a*b));
            b++;

        }
    }

1차시도에서 문제였던 것 : while이 9에서 멈춰버려서 두 번째 와일문이 실행되지 않았다!!!

하지만 한참동안 첫 번째 while문이 돌지 않는다고 생각했던 탓에 위와같은 시행착오를 겪다가

b값이 1로 돌아가면 된다고 드디어 생각!

    int a = 1;

    while (a < 9) { //2~ 9단 만들기
        a++;
        System.out.println(a + "단");
        int b = 1;

        while (b <= 9) {

            System.out.println(a + " X " + b + " = " + (a*b));
            b++;

        }
    }

 

구구단 드디어 완성!

오류가 나면 일단 어디서 뭐가 잘못됐는지 생각!!

그 이후에 코드를 고쳐야 시행착오를 줄일 수 있다는 교훈을 얻었다.

/번외로 짝수 * 홀수만 뽑기/

1차 시도

int a = 1;

while (a < 9) { //2~ 9단 만들기
    a++;
    if(a % 2 == 0) {
        System.out.println(a + "단");
        int b = 1;

        while (b <= 9) {

            if (b % 2 == 1) {
                System.out.println(a + " X " + b + " = " + (a*b));
                b++;
            }continue;

        }
    }continue;
}

왜 멈추질 않니..?

2차시도

int a = 1;

while (a < 9) { //2~ 9단 만들기
    a++;
    if(a % 2 == 0) {
        System.out.println(a + "단");
        int b = 1;

        while (b <= 9) {
            b++;
            if (b % 2 == 1) {
                System.out.println(a + " X " + b + " = " + (a*b));
            }continue;

        }
    }continue;
}

1은 어디간거야?

3차 시도

int a = 1;

while (a < 9) { //2~ 9단 만들기
    a++;
    if(a % 2 == 0) {
        System.out.println(a + "단");
        int b = 0;

        while (b <= 9) {
            b++;
            if (b % 2 == 1) {
                System.out.println(a + " X " + b + " = " + (a*b));
            }continue;

        }
    }continue;
}

성공!

고수 친구의 코드

나는 나머지로 했지만 2씩 더하기로 풀어버림 저런 방법도 있구만!

교훈 2 : 연산자를 잘 활용하자!

반응형