Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바로 구구단을 삼각형 형태로 출력하는 프로그램 만들기

이 글에서는 자바를 활용해 구구단(곱셈표)을 삼각형 형태로 출력하는 방법을 살펴봅니다. 삼각형 모양의 구구단은 중첩 반복문(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()이 한 행의 출력이 끝날 때마다 줄바꿈을 수행합니다.