구구단 구현하기

Hansol Jeong·2022년 2월 1일

Java Playground

목록 보기
1/2

학습 목표

  • 구구단 프로그램 구현
  • 단순 출력에서 코드를 간소화하는 방향으로 고도화
  • 반복문, 조건문, 메서드, 클래스 사용

사전 준비

  • jdk 설치
  • eclipse 설치
  • Hello World! 출력해보기

2,3단 출력 (단순 출력)

단순히 계산 및 출력. System.out.println 을 사용한다.

public class TimesTable {
	public static void main(String[] args) {
		// 2 times table
		System.out.println(2 * 1);
		System.out.println(2 * 2);
		System.out.println(2 * 3);
		System.out.println(2 * 4);
		System.out.println(2 * 5);
		System.out.println(2 * 6);
		System.out.println(2 * 7);
		System.out.println(2 * 8);
		System.out.println(2 * 9);
		
		// 3 times table
		System.out.println(3 * 1);
		System.out.println(3 * 2);
		System.out.println(3 * 3);
		System.out.println(3 * 4);
		System.out.println(3 * 5);
		System.out.println(3 * 6);
		System.out.println(3 * 7);
		System.out.println(3 * 8);
		System.out.println(3 * 9);
		
	}
}

4,5단 출력 (변수 지정)

  • 4단에서 변수 사용법을 익힌다.
    result 라는 변수를 지정하고, 데이터를 갱신하면서 print 하여 구현한다.

  • 5단은 scanner 메서드를 사용하여 입력값을 받아 구현해본다.
    number 라는 변수에 입력값을 받고 print 한다.

import java.util.Scanner;

public class TimesTable {
	public static void main(String[] args) {
		
		System.out.println("4 times table");
		int result = 4 * 1;
		System.out.println(result);
		result = 4 * 2;
		System.out.println(result);
		result = 4 * 3;
		System.out.println(result);
		result = 4 * 4;
		System.out.println(result);
		result = 4 * 5;
		System.out.println(result);
		result = 4 * 6;
		System.out.println(result);
		result = 4 * 7;
		System.out.println(result);
		result = 4 * 8;
		System.out.println(result);
		result = 4 * 9;
		System.out.println(result);
		
		System.out.println("구구단 출력할 단은?");
		Scanner scanner = new Scanner(System.in);
		int number = scanner.nextInt();
		System.out.println(number * 1);
		System.out.println(number * 2);
		System.out.println(number * 3);
		System.out.println(number * 4);
		System.out.println(number * 5);
		System.out.println(number * 6);
		System.out.println(number * 7);
		System.out.println(number * 8);
		System.out.println(number * 9);
		
	}
}

6,7단 구현 (반복문)

  • 반복문 (while 문, for 문)을 이용해 6단과 7단을 구현한다.
public class TimesTable {
	public static void main(String[] args) {
		
		// 6단
		int i = 1;
		while (i < 10) {
			System.out.println(6 * i);
			i ++;
		}
		
		// 7단
		for (int j=1; j<10; j++) {
			System.out.println(7 * j);
		}
		
	}
}

8,9단 구현 (조건문)

  • 조건문으로 2 이상 9 이하의 숫자가 입력되었을 때만 반복문(구구단)이 돌게 구현한다.
import java.util.Scanner;

public class TimesTable {
	public static void main(String[] args) {
		
		System.out.println("구구단 출력할 단을 입력하세요.");
		Scanner scanner = new Scanner(System.in);
		int number = scanner.nextInt();
		System.out.println("사용자가 입력한 값 : " + number);
		
		if (number < 2 || number > 9) {
			System.out.println("값을 잘못 입력했습니다.");
			}
		else {
			for (int i=1; i < 10; i++) {
				System.out.println(number * i);
			}
		}
		
	}
}

배열로 구현 (이중 반복문)

  • 이중 반복문으로 2단부터 9단까지 구현
public class TimesTable {
	public static void main(String[] args) {
		
		int[] result = new int[9];
		for (int j=2; j<10; j++) {
			for (int i=0; i<result.length; i++) {
				result[i] = j * (i+1);
				System.out.println(result[i]);
			}
		}
	}
}

Method 로 구현

  • 함수를 작성하는 형식으로 메서드를 만들어 구현
  1. 곱셈하여 하나의 단 배열로 만드는 calculate 메서드 작성
  2. 결과를 출력해주는 print 메서드 작성
  3. 반복문으로 2단부터 9단까지 결과가 나오도록 작성
public class TimesTable {
	
    // 1. calculate 메서드
	public static int[] calculate(int times) {
		int[] result = new int[9];
		for (int i=0; i < result.length; i++) {
			result[i] = times * (i+1);
		}
		return result;
	}
	
    // 2. print 메서드
	public static void print(int[] result) {
		for (int i=0; i < result.length; i++) {
			System.out.println(result[i]);
		}
	}
	
    // 3. 반복문으로 2단부터 9단까지 출력
	public static void main(String[] args) {
		
		for (int i=2; i<10; i++) {
			print(calculate(i));
		}
		
	}
}

Class 로 구현

  • main 메서드만 출력을 담당하는 새로운 클래스에 옮겨 구현

TimesTable.java

public class TimesTable {
	
    // 1. calculate 메서드
	public static int[] calculate(int times) {
		int[] result = new int[9];
		for (int i=0; i < result.length; i++) {
			result[i] = times * (i+1);
		}
		return result;
	}
	
    // 2. print 메서드
	public static void print(int[] result) {
		for (int i=0; i < result.length; i++) {
			System.out.println(result[i]);
		}
	}

TimesTableMain.java


public class TimesTableMain {
	
	public static void main(String[] args) {
		
		for (int i=2; i<10; i++) {
        	// 메서드를 가져올 클래스명을 명시
			TimesTable.print(TimesTable.calculate(i));
		}
		
	}
}

0개의 댓글