이 글에서는 자바를 활용해 구구단(곱셈표)을 삼각형 형태로 출력하는 방법을 살펴봅니다. 삼각형 모양의 구구단은 중첩 반복문(nested loop)을 사용하면 아주 간단하게 구현할 수 있습니다.
먼저 예시를 통해 어떤 결과가 만들어지는지 확인해 보겠습니다.
입력
사용자가 다음과 같은 값을 입력했다고 가정합니다.
Input : 7
출력
실행 결과는 다음과 같습니다.
The result is : 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49
i번째 행에는 j가 1부터 i까지 증가하면서 i×j 값이 출력됩니다. 덕분에 행이 내려갈수록 숫자가 하나씩 늘어나며 자연스럽게 삼각형 모양이 완성됩니다.
알고리즘
Step 1 - 시작 Step 2 - my_input, i, j 세 개의 정수 변수를 선언한다. Step 3 - 사용자로부터 값을 입력받거나 값을 직접 정의한다. Step 4 - 두 개의 for 루프를 사용해 1부터 my_input까지 반복하며 i*j 값을 계산한다. Step 5 - 결과를 화면에 출력한다. Step 6 - 종료
예제 1: Scanner로 사용자 입력 받기
이 예제에서는 java.util.Scanner 클래스를 사용해 사용자가 직접 숫자를 입력하면, 입력한 값에 해당하는 삼각형 구구단이 콘솔에 출력됩니다.
import java.util.Scanner;
import java.util.*;
public class MultiplicationTableTrianglePattern {
public static void main(String args[]){
int my_input, i, j;
System.out.println("필요한 패키지를 가져왔습니다");
Scanner my_scanner = new Scanner(System.in);
System.out.println("Scanner 객체가 생성되었습니다 ");
System.out.println("숫자를 입력하세요 ");
my_input = my_scanner.nextInt();
for (i = 1; i <= my_input; i++) {
for (j = 1; j <= i; j++) {
System.out.print(i * j + " ");
}
System.out.println();
}
}
}
실행 결과
필요한 패키지를 가져왔습니다 Scanner 객체가 생성되었습니다 숫자를 입력하세요 7 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49
예제 2: 값이 미리 정의된 경우
이 예제에서는 입력값이 코드 안에 미리 정의되어 있으므로, 별도의 입력 없이 프로그램을 실행하면 바로 결과가 콘솔에 출력됩니다.
import java.util.*;
public class MultiplicationTableTrianglePattern {
public static void main(String args[]){
int my_input, i, j;
System.out.println("필요한 패키지를 가져왔습니다");
my_input = 7;
System.out.println("입력값은 " +my_input + "으로 정의되었습니다" );
for (i = 1; i <= my_input; i++) {
for (j = 1; j <= i; j++) {
System.out.print(i * j + " ");
}
System.out.println();
}
}
}
실행 결과
필요한 패키지를 가져왔습니다 입력값은 7으로 정의되었습니다 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49
코드 동작 원리 정리
바깥쪽 for 루프는 행(row)을 담당하고, 안쪽 for 루프는 각 행에서 출력할 열(column)의 개수를 결정합니다. 조건식 j <= i 덕분에 i번째 행에서는 정확히 i개의 숫자가 출력되며, 이것이 삼각형 패턴이 만들어지는 핵심입니다. 마지막 System.out.println()이 한 행의 출력이 끝날 때마다 줄바꿈을 수행합니다.