1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package 함수1.자가진단08;
 
import java.util.Scanner;
 
public class Main {
 
    public static void ggd(int num1,int num2) {
        if(num1 < num2) {
            for(int i=num1;i<=num2;i++) {
                System.out.printf("== %ddan ==\n",i);
                for(int j=0;j<9;j++) {
                    System.out.printf(i+" * "+(j+1)+" = %2d\n",i*(j+1));
                }
                System.out.println();
            }
        }
        else if(num1 > num2) {
            for(int i=num2;i<=num1;i++) {
                System.out.printf("== %ddan ==\n",i);
                for(int j=0;j<9;j++) {
                    System.out.printf(i+" * "+(j+1)+" = %2d\n",i*(j+1));
                }
                System.out.println();
            }
        }
    }
    public static void main(String[] args) {
        int num1,num2 =0;
        
        Scanner sc = new Scanner(System.in);
        
        num1 = sc.nextInt();
        num2 = sc.nextInt();
        
        ggd(num1,num2);
    }
}
 
 

 

> ggd 라는 메소드에 if문을 사용하여 입력받은 2개의 값을 비교합니다.

   num2이 클경우 2중 for문에서 i에 num1 최솟값을 넣어주고 num2와 비교하여 for문을 반복하여줍니다.

   출력하는 곳에서는 숫자가 계속 증가해야 하므로 num1이 아닌 i를 사용하여 출력하여줍니다.

 

> num1이 클경우는 위와 반대로 하여줍니다.

   이 후 main 메소드에서 2개의 값을 입력받고 그대로 출력하여줍니다.

 

# 문제를 다 푼 후 생각해보니 메소드에서는 2개의 값을 비교해주는 if문을 작성하여 값을 리턴하여주고 

   main 메소드에서는 2중 for문을 통한 구구단 출력만 가능하게 하는것도 하나의 방법일것같습니다!!.