Loading...

JAVA / / 2022. 1. 11. 13:39

구구단 출력하기(for문)

반응형

2단을 출력하는 프로그램을 만들어달라는 요청을 받았을 때

가장 기초적으로 이렇게 작성을 할 수 있다.

package ex06;

public class GugudanEx01 {
    public static void main(String[] args) {
        // 2단 출력하는 프로그램을 만들어주세요.
        System.out.println("2 * 1 = 2");
        System.out.println("2 * 2 = 4");
        System.out.println("2 * 3 = 6");
        System.out.println("2 * 4 = 8");
        System.out.println("2 * 5 = 10");
        System.out.println("2 * 6 = 12");
        System.out.println("2 * 7 = 14");
        System.out.println("2 * 8 = 16");
        System.out.println("2 * 9 = 18");

        // 3단 추가 좀 해주실 수 있어요?
        System.out.println("3 * 1 = 3");
        System.out.println("3 * 2 = 6");
        System.out.println("3 * 3 = 9");
        System.out.println("3 * 4 = 12");
        System.out.println("3 * 5 = 15");
        System.out.println("3 * 6 = 18");
        System.out.println("3 * 7 = 21");
        System.out.println("3 * 8 = 24");
        System.out.println("3 * 9 = 27");
        
    } // 메인 끝
}

이런 코드는 노가다 코드이다.

 

한 번에 같이 수정하는 방법 :

alt를 누르고 마우스 커서를 찍어주면

선택된 부분 동시에 수정 가능

 

package ex06;

public class GugudanEx01 {
    public static void main(String[] args) {

        int step;

        // 2단 출력하는 프로그램을 만들어주세요.
        step = 2;
        System.out.println(step + " * 1 = " + (step * 1));
        System.out.println(step + " * 2 = " + (step * 2));
        System.out.println(step + " * 3 = " + (step * 3));
        System.out.println(step + " * 4 = " + (step * 4));
        System.out.println(step + " * 5 = " + (step * 5));
        System.out.println(step + " * 6 = " + (step * 6));
        System.out.println(step + " * 7 = " + (step * 7));
        System.out.println(step + " * 8 = " + (step * 8));
        System.out.println(step + " * 9 = " + (step * 9));

        // 3단 추가 좀 해주실 수 있어요?
        step = 3;
        System.out.println(step + " * 1 = " + (step * 1));
        System.out.println(step + " * 2 = " + (step * 2));
        System.out.println(step + " * 3 = " + (step * 3));
        System.out.println(step + " * 4 = " + (step * 4));
        System.out.println(step + " * 5 = " + (step * 5));
        System.out.println(step + " * 6 = " + (step * 6));
        System.out.println(step + " * 7 = " + (step * 7));
        System.out.println(step + " * 8 = " + (step * 8));
        System.out.println(step + " * 9 = " + (step * 9));

    } // 메인 끝
}

원하는 단수를 step이라는 변수를 만들어

일정한 패턴으로 만들어주었다.

 

일정한 패턴에서 바뀌는 것은 step 하나밖에 없는데

2단부터 9단까지 step만 돌려서 해서 반복할 수 있을 것 같다.

 

package ex06;

public class GugudanEx02 {
    public static void main(String[] args) {
        int step;

        // 2단 출력하는 프로그램을 만들어주세요.
        for (step = 2; step <= 9; step++) {
            System.out.println(step + " * 1 = " + (step * 1));
            System.out.println(step + " * 2 = " + (step * 2));
            System.out.println(step + " * 3 = " + (step * 3));
            System.out.println(step + " * 4 = " + (step * 4));
            System.out.println(step + " * 5 = " + (step * 5));
            System.out.println(step + " * 6 = " + (step * 6));
            System.out.println(step + " * 7 = " + (step * 7));
            System.out.println(step + " * 8 = " + (step * 8));
            System.out.println(step + " * 9 = " + (step * 9));
            System.out.println("---------------------------");
        }
    }
}

이렇게만 만들어도 가독성도 좋고

원하는 단수까지 반복만 하면 결과를 얻을 수 있을 것이다.

그런데 여기서 또 한 번 일정한 패턴이 보일 것이다.

 

1부터 9까지 곱해주는 숫자도 일정하게 1씩 커지고 있다.

이중 for문을 이용하여 코드를 더 간결하게 만들어보자.

 

package ex06;

public class GugudanEx03 {
    public static void main(String[] args) {
        int step;

        // 구구단을 출력하는 프로그램을 만들어주세요.
        for (step = 2; step <= 9; step++) {
            for (int i = 1; i <= 9; i++) {
                System.out.println(step + " * " + i + " = " + (step * i));
            }
            System.out.println("---------------------------");
        }
    }
}

실행시켜보면 2단부터 9단까지 예쁘게 구구단이 출력되는 것을 확인할 수 있다.

 

2개의 값을 입력받아서 원하는 범위의 구구단 출력도 가능하다.

package ex06;

import java.util.Scanner;

public class GugudanTest {
    public static void main(String[] args) {

        int num1 = 0;
        int num2 = 0;
        System.out.println("출력할 구구단의 범위를 입력하시오.");

        Scanner sc = new Scanner(System.in);

        num1 = sc.nextInt();
        num2 = sc.nextInt();

        for (int step = num1; step <= num2; step++) {
            for (int n = 1; n < 10; n++) {
                System.out.println(step + " * " + n + " = " + step * n);
            }
            System.out.println("");
        }
    }
}

 

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 

반응형