메소드의 입력과 출력
매개변수와 인자
메소드의 입력 값은 매개변수(parameter)를 통해서 이루어진다.
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
1
2
3
4
)
// public static void main(String[] args) {
numbering(5); 의 숫자5가
public class MethodDemo4 {
public static void numbering(int limit)에서 limit에 해당되며
while문에서 limit의 값으로 대입되므로.. 0,1,2,3,4가 출력된다
이때 호출부(main)에서 입력한 값을 로직으로 매개한다는 의미에서 이런 변수를 매개변수(parameter)라 한다.
또 메소드를 호출할때 전달된 값인 5를 인자(argument)라 부른다.
관습적으로는 매개변수와 인자를 구분하지 않고 부르는 경우도 많다.
복수의 인자
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
2
3
4
)
public static void main(String[] args) {
numbering(1, 5);
}
처럼 쉼표를 이용해 복수의 인자를 넣어 메소드를 작성할수 있다.
return
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);
}
}
numbers에서 도출된 결과값을 result로 반환하고
그 값을 return에 할당했다.
다만 반환값이없다면 void를 넣어준다.
public static void main(String[] args) {
public class ReturnDemo {
public static int one() {
return 1;
return 2;
return 3;
}
public static void main(String[] args) {
System.out.println(one());
}
}
// 다음 코드는 return이 메소드를 종료시키는 역할을 하므로 어떠한 일도 일어나지 않고, 컴파일도 되지 않는다.
복수의 리턴
public static String[] getMembers() {
String[] members = { "최진혁", "최유빈", "한이람" };
return members;
}
public static void main(String[] args) {
String[] members = getMembers();
}
}
// 다음과 같이 복수의 데이터(배열)을 리턴값으로 지정하면
복수의 데이터를 리턴할수 있으며
여러번의 리턴으로는 복수의 데이터를 지정할수 없다.
'프로그래밍 > Java (기초)' 카테고리의 다른 글
유효범위 (Scope) (0) | 2016.03.26 |
---|---|
입력과 출력. String[] args (0) | 2016.03.18 |
메소드(method)의 형식과 활용 (0) | 2016.03.18 |
배열(array) (0) | 2016.03.18 |
반복문의 제어(break, continue, 반복문의 중첩) (0) | 2016.03.18 |