본문 바로가기
카테고리 없음

#16 메소드를 활용해 구구단 다시 구현 - <JAVA플레이그라운드>

by kkooHan 2022. 8. 18.

 

출처 : https://www.inflearn.com/course/java-codesquad/dashboard

 

[무료] 만들어 가면서 배우는 JAVA 플레이그라운드 - 인프런 | 강의

는 마스터즈코스 화이트레벨을 수강하기 위한 준비단계입니다. 대상은 코딩을 전혀 경험해보지 않았던 분들을 위한 과정입니다. 기존의 이론 위주로 학습 방식이 아니라 무엇인가를 만들어가

www.inflearn.com

 

 

 

 

 

 

필사 :

 

학습 목표

 - 메소드를 활용해 구구단을 구현하는 경험을 한다.

 

 

요구사항

 - 구구단을 구현하기 위해 반복적으로 발생하는 부분이 있다.

 - 반복적으로 발생하는 부분을 메소드를 활용해 반복되는 부분을 줄인다.

 

 

힌트

 - 구구단 계산 결과를 배열에 담는 로직을 새로운 메소드로 분리한다.

 - 배열에 담은 데이터를 화면에 출력하는 로직을 새로운 메소드로 분리한다.

 

public class Gugudan {
	public static int[] calculate(int times) {
    	int[] result = new int[9];
        
        for (int i = 0; i < result.length; i++) {
        	// 계산 결과를 배열에 저장
        }
        
        return result;
    }
	
    public static void print(int[] result) {
    	for (int i = 0; i < result.length; i++) {
        	// 계산 결과를 화면에 출력
        }
    }
}

 

 

 

메소드를 수학에서 배운 함수라고 생각해도 좋다.

특정 값을 입력으로 전달하면

메소드 내에서 로직을 구현한다음

결과값을 반환해 주는. 출력으로 전달해주는 역할.

 

 

 

 

어떻게 메소드를 만들어서 줄일 수 있는지 살펴보겠다.

 

 

메소드를 만드는 방법은

메인 메소드를 만드는 방법과 거의 똑같다.

 

 

2라는 값을 입력하면

2단을 배열로 반환해주는 메소드를 만들어보겠다.

 

public static int[] calculate(int times) {

곱셈 결과들을 배열로 받으므로

반환받을 배열의 데이터 타입을 지정 -> int[]

calculate -> 메소드 이름

(int times) -> 메소드가 몇단인지를 지정해주는 입력값

 

 

메소드(calculate)는 입력값(times)을 통해서 실행한 다음에

실행 결과를 반환해준다.([])

 

 

 

 

메소드 안에 이전에 작성한 코드를 넣되

		int[] result = new int[9];
		for(int i = 0; i < result.length; i++) {
			result[i] = 2 * (i + 1);

약간 수정해준다. (2->times)

입력한 값에 대한 구구단을 출력하기 위함이다.

		int[] result = new int[9];
		for(int i = 0; i < result.length; i++) {
			result[i] = times * (i + 1);

 

 

 

반환을 되게 하려면

항상 return이라는 키워드를 입력해야 한다.

public class Gugudan {
	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;
	}
}

 

 

calculate 메소드를 구현한 다음에 분리.

이제 main 메소드에서

calculate 메소드를 사용하면 된다.

 

 

기존 구현 로직을 calculate 메소드를 통해 사용.

 

더보기

지저분해 보여서, 입력한 값만 나오게 하기 위해

수정해봤는데 잘 된다!

 

 

또 하나 중복되는 부분.

실행결과를 출력하는 부분도

메소드를 만들어서 분리할 수가 있다.

	public static void print(int[] result) {
		for(int i = 0; i < result.length; i++) {
			System.out.println(result[i]);

??? 화면으로 출력만 하는 것이지

실행결과를 return 해야 되는 것은 없다. -> void 활용 

 

void : 입력만 있고 출력은 없음.

 

(int[] result) -> 배열에 담겨있는 값을 출력(print)해야함.

 

메소드를 추가할수록

중복되는 부분이 점점 사라지고 있다.

코드가 짧아지고 있다.

 

 

 

구현을 하고보니 좋지만

2단부터 9단까지 반복해서 입력해야 하는 상황 발생.

이런 부분도 반복문을 이용해서 메소드를 호출하도록 제거할 수 있다.

public static void main(String[] args) {
		for(int i = 2; i < 10; i++) {
		int[] result = calculate(i);
		print(result);
		}
	}

main 메소드 부분을 위와 같이 수정하면

코드 하나로 2~9단까지 출력되게 할 수 있다.

 

 

배열, 반복문, 변수를 이해하고 프로그래밍을 하면

단순 반복적으로 발생하는 부분들을

지금처럼 적은 코드로 구현할 수가 있다.

 

 

이게 프로그래밍 언어를 통해서

컴퓨터에게 일을 시킬 수 있는 방법이다.

'어떻게 하면 좀 더 짧은 코드로 똑같은 일을 시키느냐'

좋은 프로그래머로 성장하는 길이다.

 

 

메인 메소드의 복잡함을

메소드 분리를 통해서 깔끔하게 만들어봤다.

 

 

다음 시간에는 클래스 내용을 도입해서

분리하는 내용을 해보겠습니다.

 

 

 

 

느낀점 : 

 

맘 같아서는 여태까지 배운 거 종합해서

나만의 계산기 만들어보고 싶지만

그러다간 진도 다 못나간 상태로 학원 들어가게 된다..

 

 

 

<이클립스 ctrl+/ 오류날 때>

댓글