본문 바로가기

JAVA/Practice Q

Q4. 구구단을 출력을 하되 6단과 7단을 제외하고 출력하자

// 방법01 - 6 or 7을 제외하고 출력하는 것

System.out.println("===========방법01==========");

for (int x = 2; x <= 9; x++) {
    if (x != 6 && x != 7) {							

        System.out.println();
        System.out.println(x + " 단을 출력하자");
        for (int y = 1; y <= 9; y++) {

            int result = x * y;
            System.out.println(x + " X " + y + " = " + result);
        }	
    }	
}

// 여기서 ==으로 하면 6,7단만 나오긴해. 근데 != 로 바꾸면 왜 안빠질까???
// || 가 아니라 &&를 써야 67빼고 나옴... 음...
// x가 6인 경우에 x != 7이 참이 되어 전체 조건식이 참이 되기 때문에!!!!!!
// 전체가 true면 밑의 조건을 출력한다구~!~!~!
// 만약에 6,7단만 출력하고 싶다면 if (x == 6 || x == 7) 이거야.

// && (and) : 논리곱 --> 피연산자 둘다 true여야한 결과가 true가 도출됨
// || (or) : 피연산자 중 하나라도 true이면 결과가 true로 도출됨 (= 둘다 false여야 false가 도출됨)
// ! (not) : 도출된 결과의 반대로 출력

 

 

// 방법02 - continue 이용 (연산 자체를 안하도록)

System.out.println("===========방법02==========");

for (int x = 2; x <= 9; x++) {

    if (x == 6 || x == 7) {
        continue;
    }

    System.out.println();
    System.out.println(x + " 단을 출력하자");
    for (int y = 1; y <= 9; y++) {

        int result = x * y;
        System.out.println(x + " X " + y + " = " + result);
    }
}

// x = 6 or 7이되면 continue에 걸려서 +1을 하게되고,
// x = 8일때부터 조건에 안걸리니까 원래대로 출력

 

 

// 방법03 - break 이용

System.out.println("===========방법02==========");

for (int x = 2; x <= 9; x++) {

    System.out.println();
    System.out.println(x + " 단을 출력하자");
    for (int y = 1; y <= 9; y++) {

        if (x == 6 || x == 7) {
            break;
        }

        int result = x * y;
        System.out.println(x + " X " + y + " = " + result);
    }
}

// 저 if ~ break가 for ~ y 밖에 있으면
// x = 6일때 아에 멈춰서 5단까지만 출력되있겠지?
// for~y 안에 넣어야 x = 6, 7일때 멈춰서 y쪽을 실행안하고 x++로 넘어가는거임!!!