프로그래밍 입문

코스 전체목록

닫기

메소드

지금까지 배운 것으로도 얼마든지 프로그램을 만들 수 있다. 반복문, 조건문, 변수, 상수와 같은 것들은 사실상 프로그램을 만드는 가장 중요한 도구들이라고 할 수 있다. 지금부터 배우게 될 메소드나 객체지향과 같은 개념들은 웅장하고, 결함이 없고, 유지보수가 쉬운 애플리케이션을 만들기 위한 기법들이라고 할 수 있다. 이것들 없이도 프로그램을 만들 수는 있지만, 이것들 없이 규모있는 애플리케이션을 만든다는 것은 현실적으로 어려운 일이다. 지금까지 만드는 방법을 배웠다면 이제부터는 잘 만드는 방법을 익히는 것이라고 해도 과언이 아니다.

메소드

메소드(method)는 코드를 재사용할 수 있게 해준다. 이번 시간에는 경제적으로 로직을 작성하는 방법에 대해서 알아볼 것이다.

메소드의 형식

여러분은 이미 메소드를 만들고 사용했다. 아래 그림을 보자.

 

이것이 메소드다. 지금까지 수없이 만들었던 저 main이라고 하는 것이 바로 메소드인 것이다. 위의 그림을 자세히 보면 핑크색으로 된 부분과 검은색으로 된 부분이 있다. 이 중에서 검은색으로 된 부분은 이번 토픽에서 다루지 않을 개념이다. 이것들은 객체지향과 함께 언급되어야 본질을 이해할 수 있기 때문에 여기서는 언급하지 않겠다. 메소드를 만들 때 public static이라고 적어야 한다고 일단은 기계적으로 이해하자. 여러분이 주목할 것은 핑크색으로 강조한 부분이다.

 

메소드의 정의와 호출

직접 메소드를 만드는 것을 정의라고 하고, 만들어진 메소드를 실행하는 것을 호출이라고 한다.

아래의 예제를 보자. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo1 {
    public static void numbering() {
		int i = 0;
		while (i < 10) {
			System.out.println(i);
			i++;
		}
	}

	public static void main(String[] args) {
		numbering();
	}
}

결과는 아래와 같다.

0
1
2
3
4
5
6
7
8
9

 아래 그림을 보자.

위의 예제는 numbering이라는 이름의 메소드를 정의하고 있다. 이 메소드는 main이라는 이름의 메소드 안에서 호출되고 있다. 위의 코드는 아래의 코드와 정확하게 동일한 의미를 갖는다.

핑크색으로 표시한 부분의 코드를 numbering이라는 이름의 메소드로 묶어서 외부로 분리한 것이다. 그리고 메소드 numbering의 로직이 필요할 때 numbering();이라고하면 메소드 numbering의 로직이 실행된다.

main

자 그럼 main 메소드가 무엇인지 알아보자. main 메소드는 규칙이다. 여러분이 만들고 싶은 프로그램이 있다면 여러분은 반드시 public static void main(String[] args)가 이끄는 중괄호 안에 실행되기를 기대하는 로직을 위치시켜야 한다. 이것은 약속이기 때문에 여러분은 약속을 지켜야 한다. 그렇게 코드를 작성하면 자바를 실행할 때 자바는 여러분이 작성한 main 메소드를 실행하게 되는 것이다. 여러분은 main 메소드를 작성하고, 자바는 main 메소드를 실행하는 관계라고 할 수 있다.

메소드가 없다면

아래 예제를 보자. 반복문 수업에서 0부터 9까지 출력하는 애플리케이션을 만들었다. 그런데 0부터 9까지를 5번 출력해야 한다면 어떻게 해야 할까? 아래와 같이 해야 할 것이다. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo2 {
    
    public static void main(String[] args) {
		int i = 0;
		while(i<10){
			System.out.println(i);
			i++;
		}
		
		i = 0;
		while(i<10){
			System.out.println(i);
			i++;
		}
		
		i = 0;
		while(i<10){
			System.out.println(i);
			i++;
		}
		
		i = 0;
		while(i<10){
			System.out.println(i);
			i++;
		}
		
		i = 0;
		while(i<10){
			System.out.println(i);
			i++;
		}
	}

}

이 정도는 copy&paste로 해볼 만하다. 하지만 만약 이것을 1000번 해야 한다면? 각각의 로직이 1000 줄에 육박한다면? 그리고 그 내용을 수정해야 한다면? 서서히 암담한 느낌이 들지 않는가? 메소드를 사용한다면 이러한 문제를 현저히 줄일 수 있다. 아래의 예제를 보자. 결과는 같지만 로직은 단 한 번만 등장한다. 이러한 것을 재활용성이라고 한다. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo3 {
    public static void numbering() {
		int i = 0;
		while (i < 10) {
			System.out.println(i);
			i++;
		}
	}

	public static void main(String[] args) {
		numbering();
		numbering();
		numbering();
		numbering();
		numbering();
	}
}

입력과 출력

지금까지 메소드의 첫 번째 면모인 재활용성에 대해서 알아봤다. 자주 사용하는 로직을 메소드로 만들어두면 호출하는 것을 통해서 간편하게 로직을 재활용할 수 있다. 이제 메소드의 두 번째 면모를 살펴볼 것인데 입력과 출력이다.

살아있는 것들은 외부의 자극에 따라서 반응한다. 외부의 자극이 입력이라면 반응은 출력이라고 할 수 있다. 우리가 아는 쓸모있는 대부분의 프로그램이 사용자의 입력에 따라서 다른 결과를 출력한다. 메소드는 프로그램 안에서 동작하는 하나의 작은 프로그램이라고 할 수 있다. 위에서 살펴본 numbering이라는 메소드는 항상 똑같은 동작만을 반복한다. 이것도 재활용이라는 측면에서는 장점이 있지만, 입력 값에 따라서 출력 값을 달리 제공한다면 더욱 쓸모 있는 프로그램이 될 수 있을 것이다.

매개변수와 인자

메소드의 입력 값은 매개변수(parameter)를 통해서 이루어진다. 위의 예제를 조금 개선해보자. 이전 예제는 0부터 9까지의 숫자를 화면에 출력했다. 만약 필요에 따라서 0부터 4까지 출력하고 싶거나 0부터 8까지 출력하고 싶다면 어떻게 해야 할까? 각각에 맞는 메소드를 새로 정의해야 할까? 그렇게 해도 되지만 더 좋은 방법이 있다. 입력 값에 따라서 다른 출력 값을 갖도록 메소드를 정의하면 된다. 즉, 입력을 고민할 때가 된 것이다. 아래의 예제를 보자. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo4 {
    public static void numbering(int limit) {
		int i = 0;
		while (i < limit) {
			System.out.println(i);
			i++;
		}
	}

	public static void main(String[] args) {
		numbering(5);
	}
}

결과는 0부터 4까지 출력한다. 메소드를 호출할 때 괄호에 값을 주고 있는데 저 값을 다른 값으로 바꿔보자. 값에 따라서 다른 결과가 출력되고 있다. 입력을 통해서 메소드의 동작을 제어하고 있다. 아래 그림을 보자.

메소드 numbering의 괄호 안에 위치한 숫자 5는 이 메소드가 호출될 때 limit이라는 변수의 값이 된다. 이 값은 메소드 numbering의 중괄호 안에서만 사용할 수 있다. 위의 코드는 아래의 코드와 동일한 의미를 갖는다.

public static void numbering() {
	int limit = 5;
	int i = 0;
	while (i < limit) {
		System.out.println(i);
		i++;
	}
}

여기서 limit이라는 변수는 메소드 numbering의 정의 부에 있는 로직들에게 5라는 값을 전달하고 있다. 호출에서 입력한 값을 로직으로 매개 한다는 의미에서 이러한 변수를 매개변수라고 부른다. 영어로는 parameter다. 그리고 메소드를 호출할 때 전달된 값인 5를 '인자' 영어로는 argument라고 한다. 관습적으로는 매개변수와 인자를 구분하지 않고 부르는 경우도 많다.

복수의 인자

만약 메소드로 여러개의 입력값을 전달하고 싶다면 어떻게 해야 할까? 다음 예제는 위의 예제를 개선해서 출력할 숫자의 시작 값과 마지막 값을 입력값으로 전달하는 예제다. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo5 {

    public static void numbering(int init, int limit) {
		int i = init;
		while (i < limit) {
			System.out.println(i);
			i++;
		}
	}

	public static void main(String[] args) {
		numbering(1, 5);
	}

}

 결과는 1부터 4까지가 출력된다. 위와 같이 입력 값을 복수로 받고 싶다면 콤마 뒤에 매개변수를 정의해주면 된다. 또 이 메소스를 호출할 때는 매개변수의 순서대로 인자를 배치하면 된다.

return

위의 예제는 화면에 숫자를 출력한다. 물론 이것도 출력이지만 좀 더 활용도가 높은 출력 방법이 있다. 아래 예제를 보자. (실행)

package org.opentutorials.javatutorials.method;

public class MethodDemo6 {
    public static String numbering(int init, int limit) {
		int i = init;
		// 만들어지는 숫자들을 output이라는 변수에 담기 위해서 변수에 빈 값을 주었다.
		String output = "";
		while (i < limit) {
			// 숫자를 화면에 출력하는 대신 변수 output에 담았다.
			output += i;
			i++;
		}
		// 중요!!! output에 담겨 있는 문자열을 메소드 외부로 반환하려면 아래와 같이 return 키워드 뒤에 반환하려는 값을
		// 배치하면 된다.
		return output;
	}

	public static void main(String[] args) {
		// 메소드 numbering이 리턴한 값이 변수 result에 담긴다.
		String result = numbering(1, 5);
		// 변수 result의 값을 화면에 출력한다.
		System.out.println(result);
	}
}

메소드 내에서 사용한 return은 return 뒤에 따라오는 값을 메소드의 결과로 반환한다. 동시에 메소드를 종료시킨다. 한가지 잊지 말아야 할 점은 return을 통해서 반환할 값의 데이터 형식을 메소드의 이름 옆에 명시해주어야 한다는 것이다.

이것은 프로그래밍을 처음 시작하거나, JavaScript나 PHP와 같은 언어들에 익숙한 개발자에게는 까다롭고 귀찮게 느껴질 수 있는 부분이다. 하지만 메소드가 리턴 할 값을 명시함으로서 numbering이라는 메소드는 반드시 문자열의 값을 리턴한다는 것을 보장할 수 있는 장점이 있다. 모든 일에는 장점과 단점이 있다. 장단의 다면성을 충실하게 응시할 때 적합함을 얻을 수 있다. (필자도 노력중이다)

만약 반환 값이 없다면 아래와 같이 void를 적어준다.

굳이 이렇게 복잡하게 데이터를 리턴하는 이유는 무엇일까? 내용을 화면에 출력하는 것은 동일하지 않은가? 결론적으로 말하면 부품으로서의 가치를 높이기 위해서라고 할 수 있다. 만약 여러분이 이 메소드가 출력한 값을 화면에 출력하는 것이 아니라 파일에 기록하고 싶다면 어떻게 해야 할까? 또는 이메일로 보내고 싶다면 어떻게 해야 할까? 3개의 메소드를 만들고 용도에 따라서 코드를 재작성하는 것도 좋은 방법이다. 하지만 더 좋은 방법은 숫자를 출력하고, 숫자를 파일에 기록하고, 숫자로 이메일을 보내는 작업으로부터 숫자를 계산하는 로직을 분리하는 것이다. numbering은 자신이 어떻게 사용될지 모른다. 누구든지 numbering이라는 메소드를 호출할 때 초기값과 마지막 값을 입력하면 numbering은 숫자를 문자열의 형태로 반환하면 되는 것이다. 코드를 보자.

package org.opentutorials.javatutorials.method;

import java.io.*; // 무시

public class MethodDemo7 {
    public static String numbering(int init, int limit) {
		int i = init;
		String output = "";
		while (i < limit) {
			output += i;
			i++;
		}
		return output;
	}

	public static void main(String[] args) {
		String result = numbering(1, 5);
		System.out.println(result);
		try { // 무시
			// 다음 행은 out.txt 라는 파일에 numbering이라는 메소드가 반환한 값을 저장합니다.
			BufferedWriter out = new BufferedWriter(new FileWriter("out.txt"));
			out.write(result);
			out.close();
		} catch (IOException e) {
		} // 무시
	}
}

코드에서 무시라고 표시된 부분은 지금 단계에서는 이해하기 어려운 것이다. 무시하자. 중요한 것은 numbering이라는 메소드로부터 화면에 출력이라는 구체적인 행위를 제거하고 대신에 처리 결과를 반환하고 있다는 사실이다.

return의 특성에 대해서 조금 더 알아보자. return은 값을 반환하는 동작을 한다. 그런데 이것은 return에 대한 반쪽짜리 설명이다. return은 메소드를 중단시키는 역할도 한다. 코드를 보자. (실행)

package org.opentutorials.javatutorials.method;

public class ReturnDemo {
    public static int one() {
		return 1;
		return 2;
		return 3;
	}

	public static void main(String[] args) {
		System.out.println(one());
	}
}

위의 코드는 컴파일조차 되지 않는다. 왜냐하면, return 은 메소드를 종료시키는 역할을 하므로 return이 처음 등장한 이후의 구문은 실행되지 않기 때문이다. 하지만 아래의 예제는 문제가 전혀 없다.

package org.opentutorials.javatutorials.method;

public class ReturnDemo2 {
    public static String num(int i) {
    	if(i==0){
			return "zero";
		} else if(i==1){
			return "one";
		} else if(i==2){
			return "two";
		}
		return "none";
	}

	public static void main(String[] args) {
		System.out.println(num(1));
	}
}

return이 여러 번 등장하지만 return이 중복적으로 실행될 가능성이 없기 때문이다. return "none";를 제거하면 컴파일이 되지 않을 것이다. 

복수의 리턴

메소드는 여러 개의 입력 값을 가질 수 있다. 그렇다면 여러 개의 값을 출력하고 싶다면? 자바는 문법적으로 그런 기능을 제공하지 않는다. 하나의 변수에 여러개의 값을 담아서 출력하면 된다. 아래의 코드를 보자. (실행)

package org.opentutorials.javatutorials.method;

public class ReturnDemo3 {
    public static String getMember1() {
		return "최진혁";
	}

	public static String getMember2() {
		return "최유빈";
	}

	public static String getMember3() {
		return "한이람";
	}

	public static void main(String[] args) {
		System.out.println(getMember1());
		System.out.println(getMember2());
		System.out.println(getMember3());
	}
}

하나의 메소드는 하나의 값만을 반환할 수 있기 때문에 위와 같이 각각의 회원정보를 반환하는 메소드를 만들었다. 무언가 비정상적이지 않은가? 이번엔 배열을 이용한 아래의 코드를 보자. 맴버를 담고 있는 배열을 반환하고 있다. 간단하지 않은가? 메소드 getMembers가 리턴한 배열을 members 변수에 담았다. 이 변수를 이용해서 여러 개의 데이터를 처리 할 수 있게 된다. (실행)

package org.opentutorials.javatutorials.method;

public class ReturnDemo4 {

    public static String[] getMembers() {
    	String[] members = { "최진혁", "최유빈", "한이람" };
		return members;
	}

	public static void main(String[] args) {
		String[] members = getMembers();
	}

}

 

댓글

댓글 본문
  1. 김태현
    수업 3차완료
  2. 데이터를 전달하기 위해서 써야 되요
    대화보기
    • 김태현
      수업 2차완료
    • 치킨이12
      지금까지 잘 따라왔는데
      return 왜 쓰는지 어떻게 쓰는건지 이해가 안 간다ㅠ
    • 20200807 학습완료
    • yulrinam
      200806 시청완료 감사합니다 :)
    • 김루퍼
      @김요한

      6637님이 설명해주신대로 output += i; 는 output = output + i; 라는 뜻입니다.

      메소드에서 리턴을 하면 메소드가 종료되기 때문에
      진행했던 결과 값들을 보기 위해서 사용한 것으로 생각합니다.

      여기서는 배열을 사용하지 않고 문자열에 '+' 연산자를 사용합니다.
      문자열 변수 output을 "" 라는 공백으로 초기화를 하고,
      i의 값으로 나오는 1, 2, 3, 4 를 모두 합치면 output = "1234" 가 됩니다.
      이 값을 반환하여 출력하면 1234가 나오게 되죠.

      굳이 이 출력값이 아니여도 메소드를 잘 생각하면 응용하여 원하는 대로 사용할 수 있습니다.
      예를 들면 numbering 메소드에서 진행된 값을 모두 더하여 반환하는 코드입니다.

      public static int numbering(int init, int limit) {
      int i = init;
      int output = 0; // 정수형 변수 output을 초기화
      while (i<limit) {
      output += i;
      i++;
      }
      return output; // public static 오른쪽에 int 를 작성하여 정수를 반환한다는 것을 확인.
      }

      public static void main(String[] args) {
      int result = numbering(1,5); // numbering의 return 자료형이 int 이므로 result도 int 형으로 설정
      System.out.println(result);
      }
      대화보기
      • EunSeok Kang
        감사합니다 잘보고 갑니다.
      • nhc6637
        @김요한

        output += i; 를하신 이유는
        영상에서 설명하셨다시피 output = output+i; 라는 뜻이고
        result라는 결과값은 문자열이 와야하기에 numbering의 결과값 즉 output은 문자열이 되어야 할 것이고
        그렇기에 처음 String output ="" 이라하여 문자열 변수를 선언하였고
        output = output +i, ""+i 즉 i값 숫자로 출력할 수는 없으니 ""를 사용하여
        문자열로 만드는 작업인 것으로
        저는~ 이해했는데 ..

        맞는것인줄은 모르겠네요.. 질문보고 저도 한번 생각하고 글로 써보고 싶어 댓남겼습니다..
        참고만해주세요
        대화보기
        • 김요한
          논리적 사고를 가지지 못한 나의 뇌가 고생을 한다.... 이해할 때까지 반복학습하느 수밖에 ㅠㅠ

          한가지 궁금한게 있는데요.



          public static String numbering(int init, int limit) {
          int i = init;
          String output = "";
          while (i < limit) {
          output += i;
          i++;
          }

          return output;
          }


          질문 1. output += i
          이건대체 무슨 기호입니까.....
          보이드 매인에서입력된 호출값을 스트링 넘버링이란 메쏘드의 아웃풋의 상수값(호출값)을 도출해내기 위해서. 아웃풋을 i값을 치환하는 과정인 것까지는 이해했는데요.
          다만 기호가 도무지 이해가 안되네요.... 기호 해석좀해주세요...

          아웃 풋 플러스는 i값이란 건가요?
        • 김윤택
          진짜 최고다..
        • 자바왕초보 4일차 완료

          메소드는 코드를 재사용 할 수 있게 해준다.
          메소드안에서 작성한 로직을 정의라고 부르고 메인메소드에서 메소드이름(); 하여 불러오는 것을 호출 이라고 한다.

          메소드를 사용하는 이유는 코드가 간결해지고 유지보수도 쉬워지고 코드량도 줄어든다.
          main메소드는 사용자가 입력한 코드를 출력할수 있게 해주는 역할을 한다.(main 메소드가 없으면 실행이 안됨)

          메소드의 입력값은 매개변수에 따라 출력값이 달라지고 메소드를 호출할때 들어가는 값을 인자라고 한다.
          매개변수가 인자의 값을 받아서 결과가 달라진다.

          return은 값을 메소드의결과값으로 반환하고 종료시킨다.
          void는 리턴값이 없는걸을 의미한다.
          복수의 return 값을 받으려면 배열을 이용해서 배열에 담은 것을 값으로 리턴하게 사용할 수 있다.
        • 수환잉
          return 한번 더 듣기 ㅠ
        • 배열을 바로 출력하는 것은 자바에서 불가능합니다. for이나 while문으로 하나씩 출력해야 합니다.
          대화보기
          • 메소드가 인자값을 주면 그것은 입력값이 됩니다. 그 입력값을 배열로 받으면 여러개의 인자를 콤마로 구분해서 배치하지 않아도 하나의 값에 여러 개의 데이터를 담아서 메소드로 전달할 수 있습니다.
            강의에서 말씀하신 이 부분이 잘 이해가 가지 않습니다.
            예제를 알 수 있을까요?
          • 20200321
            어려움 다시 볼것
          • 초보
            정말 이해하기까지 오랜시간이 걸렸네요..ㅋㅋ
            특히 println이 매인단에서 어떤식으로 작용하는지
            그리고 매소드단에서 어떤식으로 작용하는지 계속해서 비교해보면서 스스로 답을내리는 방법을 배웠습니다.
            늦은나이 머리도 둔재이지만 이고잉님 덕분에 두렵지 않습니다 감사해요!
          • 흐무
            2020-03-02 복습완료
            메소드는 재 사용이 가능하고 값이 고정적이지 않고 가변적이라면 메소드 안에 매개변수를 지정해서 메소드를 지정해준다.
            메소드를 호춣할때는 메소드명();로 호출해준다. 이때 매개변수가 있으면 괄호안에 값을 지정해주어야 한다. 매개변수의 갯수와 인자의 갯수가 일치해야 찾아갈 수 있다.
            void 를 지정할시 return 타입을 사용하지 않다는 것을 의미하고 사용해도 버그는 발생하지 않는다.
            한 메소드 안에 return를 여러번을 할수 없기 때문에 배열에 담아서 return를 해주고 return을 해주면 값을 반환해서 바깥에다 전달해주는 역할을 하기도 하지만 다른식으로도 쓴다.
          • 최진혁
            완료
          • 022520
            완료
          • 초심으로
            200222 완
          • 포기하지마
            members는 참조변수이기 때문에 배열의 주소가 출력됩니다.
            대화보기
            • 자린이
              마지막것을 system.out.println(members) ; 를 추가해 봤는데 위에적은 최진혁 최유빈 한이람이 나와야하는것 아닌가요??

              이상한 글자들로 나오더라고요..ㅠㅠ
            • 2020/01/10 재수강 완료
            • 과연다볼수있을까?
              200106 완
            • 1214 메소드 완료
            • 1213 메소드부터 다시
            • 엘비
              20191114 완료
            • 이재우
            • 다야
              06/11/19 완료
            • Jack
              2019/10/31 수강완료
            • 진방
              19/10/30 완료
            • gwonran
              19/10/20 복습완료
            • 허공
              감사합니다!
            • 워나
              2019/10/12 완료
            • 2019-09-23 수강완료
            • PassionOfStudy
              190916 Note (추석연휴 끝나고 다시 시작)
              * 메소드(Method)
              메소드는 함수라고도 하며 코드를 재사용할 수 있게 해준다.
            • 홍주호
              20190904 완료
            • 섭이
              190901
            • doevery
              수강완료
            • 다나가
              190821 - 학습 완료!!!
            • 코딩을시작
              check!!!
            • 김혜민
              메서드 생성 방법, 호출(사용)방법 숙지하세요.

              리턴타입 메서드명 (매개변수) {
              매서드가 할일 기술
              }
              리턴 타입은 기본 변수 및 사용자가 생성한 클래스 등으로 할 수 있습니다
              void면 리턴하지 않습니다.

              예)
              리턴 이 있는 메서드
              String getStudentName() -- 학생의 이름이 리턴되는 메서드의 경우

              리턴이 없는 메서드
              void sendSms() -- sms를 보내고 결과는 안받아도 되는 경우


              좋은 강의 감사합니다.
            • 왕만두
              네 자바에서는 + 덧셈 연산시 연산자와 피연산자 중 하나라도 스트링이면 스트링으로 변환되어 연산되어집니다

              숫자+숫자 = 숫자
              문자열 + 숫자 = 문자열
              숫자 + 문자열 = 문자열
              문자열 + 문자열 = 문자열

              원래 StringBuilder 클래스 이용하는데 비교적 간단한 연산을 직관적이고 빠르게 하기 위해서 사용합니다
              대화보기
              • 김만기
                i 가 int 형으로 선언 되었는데 어떻게 String 변수인 output에 연산이 되는거죠?

                output += i 는 output = output+i 라고 하셨는데
                문자열 = 문자열 + 정수 인데 그럼 i 는 문자열로 자동으로 형변환이 되는건가요?
              • 행인
                string 타입으로 선언한 뒤 i += 하면 덧셈이 되는게 아니라
                그 숫자가 그대로 뒤에 붙습니다.
                예를들어 i 가 3, 4, 5, 6 순으로 들어온다면
                ouput = 1 + 2 + 3 + 4 = 10 이 되는게 아니라
                ouput = 1234 가 되는거죠
                아마 굳이 스트링으로 한 것은
                각각 값이 뭐가 들어왔나 확인용이 아닐까 싶습니다.
                대화보기
                • 그런데 numbering 메소드에서 output이 String 타입인데 int인 i의 += 연산을 해도 output 객체의 숫자가 증가 할 수있나요?

                  output과 return value를 String으로 두신 이유가 있을까요?
                • Hyeon-Jun Ha
                  완료
                • 진한
                  잘봤습니다. 휴 ~~
                • 얼그레이
                  return과 다양한 데이터 타입이 지정된 메소드를 만드는 게 어렵네요! 190706 완료!
                버전 관리
                egoing
                현재 버전
                선택 버전
                graphittie 자세히 보기