반응형
배열과 method
➰ 배열을 parameter로 받는 method
package day11;
import java.util.Arrays;
public class MethodEx04 {
public static void main(String[] args) {
int [] arr = {1,2,3,4,5};
String[] arr2 = {"월","화","수"};
method01(arr);
method02(arr, arr2);
int[] arr3 = method03();
String[] arr4 = "str".split("");
System.out.println(Arrays.toString(arr3));
System.out.println(Arrays.toString(arr4));
}
// 정수배열을 매개변수로 받는 메서드
static void method01(int[] a) {
//a를 이용해서 배열값의 사용가능
System.out.println(Arrays.toString(a));
}
//정수배열과, 문자열 배열을 매개변수로 받는 메서드
static int method02(int[] arr, String[] arr2) {
for(int a : arr) {
System.out.println(a);
}
return 0;
}
//배열을 반환하는 메서드
static int[] method03() {
int[] arr = new int[5];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;
arr[4] = 4;
return arr;
}
}
➰ Quiz - 아래 method 6-8까지 만들어보기

import java.util.Arrays;
public class Quiz25 {
public static void main(String[] args) {
//char배열의 요소를 문자열로 모두 붙여서 출력
char[] arr = {'h','e','l','l','o'};
String str = method6(arr);
System.out.println(str);
//배열의 요소의 합을 리턴
int[] n_arr = {1,3,5,3,5};
System.out.println(method7(n_arr));
String str1 = "hello 안녕 봉주르 니하오";
String str2 = "where are you from ~";
String[] test_arr = method8(str1, str2);
System.out.println(Arrays.toString(test_arr));
}
//char배열의 요소를 문자열로 모두 붙여서 리턴
static String method6(char[] arr) {
String str = "";
for(int i = 0; i < arr.length; i++) {
str += arr[i];
}
return str;
}
//배열의 요소의 합을 리턴
static int method7(int[] arr) {
int sum = 0;
for(int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
//매개변수를 배열에 저장하여 배열 리턴
static String[] method8(String str1, String str2) {
String str = str1 + " " + str2;
String[] str_arr = str.split(" ");
return str_arr;
}
}
➰ method 안에서의 method 사용과 method의 재귀적 실행
- 재귀적 함수는 탈출의 구문을 반드시 명시해주는 것이 규칙이다.
- 만약, 탈출 구문이 없다면 Stack Overflow남...
* 효율은 떨어진다. 규칙을 만드는데에는 좋지만..
package day11;
public class MethodEx05 {
public static void main(String[] args) {
// 메서드의 (동기적) 실행 방식
// 동기적 - 순서대로 실행한다.
test01();
//메서드의 재귀적 실행 - 기초
recursive(0);
//메서드의 재귀적 실행 - factorial
int sum = 1;
for(int i = 1; i <= 5; i++) {
sum *= i; // 팩토리얼~ (순서대로 곱해주기)
}
System.out.println(sum);
//재귀적 함수 - 위 코드를 fac method로 만들 수 있다. (다만 효율은 좀 떨어지는,,,)
int result = fac(5);
System.out.println(result);
}
static void test01() {
System.out.println("1번 메서드 실행");
test02();
System.out.println("1번 메서드 종료");
}
static void test02(){
System.out.println("2번 메서드 실행");
System.out.println("2번 메서드 종료");
}
static void recursive (int a) {
//재귀적 함수는 탈출의 구문을 반드시 명시해주는 것이 규칙이다.
if(a == 10) return;
a++;//param 값 증가
recursive(a);
}
static int fac(int a) {
if(a == 1) return 1;//fac(1) = 1
return a * fac(a-1);
}
}

반응형
'국비지원 > JAVA' 카테고리의 다른 글
| [JAVA] 11-3. 생성자(Constructor) (0) | 2022.10.05 |
|---|---|
| [JAVA] 11-2. 객체와 클래스 (0) | 2022.10.05 |
| [JAVA] 10. method (0) | 2022.10.04 |
| [JAVA] 9-2. 문자열 다루기 (0) | 2022.09.30 |
| [JAVA] 9-1. 현재까지 배운 것의 활용 Quiz - 고객 정보 관리 프로그램 (0) | 2022.09.30 |