자바 JAVA/자바 기초

자바 함수정의 및 사용하기

땅콩아놀자 2023. 1. 26.
반응형

원하는 목적이 있고, 그 목적을 마치 하나의 도구처럼 사용할 수 있도록 해주는게 바로 함수이며,

함수는 다음과 같이 정의할 수 있다.

public static void print5Stars() {
    코드 작성
}

static이란?

static의 경우 Java의 기본 골격인 main함수가 static으로 정의되어 있기 때문에 꼭 함수 선언시 static을 적어줘야한다.

 

void란?

함수를 정의하기 위해서 꼭 반환 타입을 적어줘야하고, 바로 뒤에는 함수 이름을 적어주면된다.

위의 코드에서 void는 반환(return)값이 따로 없을 경우 써주면 되는것이다.

 

함수명 입력은 camel Case로

자바에서는 함수 이름을 적을때 소문자로 시작하여 의미 단위로 해당 단어가 시작될 때 다시 대문자를 적어 구분해주는 카멜케이스를 따른다.

 

 

만들어둔 함수는 어떻게 사용하나?

위에서 처럼 정의한 함수는 main 함수에서 호출하면된다.

public class Main {
	public static void main(String[] args){
        함수 이름();
    }
}

인자가 1개인 함수

위에서는 인자가 없는 함수였다. 함수는 아래처럼 인자 즉 매개변수를 설정할 수 있다.

public static void printNLines(int n) {
   코드 작성
}

 

main 함수에서 n번 반복하는 경우에 대해 생각해볼 수 있다.

이땐 함수 이름 옆에 있는 소괄호 사이에 원하는 변수 이름을 타입과 함께 하나 적으면 된다.

위의 경우는 n번을 반복하기 위해 매개변수로 int n으로 설정해주었고,

함수를 정의할 때 같이 적어주는 값을 함수의 인자 라고 부른다.

n을 받아서 n번을 반복하는 것이다.

public class Main {
    public static void main(String[] args) {
		// 함수 이름(인자값)
        printNLines(5);
	}
}

위와 같은 함수가 만들어졌다면, 설정하고 싶은 만큼 호출할때 인자값을 넣어주면 된다.

이러한 함수를 실행하기 위해서는, main에서 함수 이름(인자 값) 형태로 적어주면된다.

이때 매개변수는 int형이였으니 숫자로 넣어주면 되는 것이다.

 

인자가 2개인 함수

함수를 만들때는 필요에 따라 매개변수를 1개가 아닌 여러개를 설정할 수 있다.

예를 들어 연속하여 ●를 m개를 출력하는 것을 n번을 반복한다하면 n으로 4으로 받고 m으로 5를 받으면 된다.

public static void printRect(int n, int m) {
    코드 작성
}

인자의 개수가 2개 이상인 경우에는 각 인자들 사이에 쉼표(,)를 적어주면된다.

그리고 이때 매개변수로 지정한 변수의 개수와 인자값의 개수를 정확히 맞춰 넘겨야만 에러가 나지 않는다.

public static void printRect(int n, int m) {
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++)
            System.out.print("●");
        System.out.println();
    }
}

따라서 정확히 개수를 맞춰 넘겨야만 합니다.

n과 m을 받아, n개의 줄에 걸쳐 각 줄에 m개씩 별을 출력하는 함수는 위와 같이 작성해주면 된다.

 

이 함수를 사용하기 위해서는 역시 main에서 

n = 4, m = 5라는 값을 넣어 실행하려면 순서대로 printRect(4, 5); 로 함수를 불러온다.

그러면 순서대로 n이 4의 값으로 실행되고 m은 5의 값으로 실행된다.

 

public class Main {
    public static void printRect(int n, int m) {
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < m; j++)
                System.out.print("●");
            System.out.println();
        }
    }
    public static void main(String[] args) {
        printRect(4, 5);
    }
}

>>
●●●●●
●●●●●
●●●●●
●●●●●

값을 반환하는 함수 만들기

함수의 역할은 함수 내에 출력문을 써서 호출 시 무엇을 출력해주는 것에만 국한되어 있지는 않다.

a, b라는 숫자들이 주어졌을 때 두 수의 합을 반환해주는 것 역시 함수가 할 수 있다.

 

위에서는 반환 타입을 void로 써줬고, 이 경우에는 return값이 없다는 뜻이었다.

만약 어떤 함수가 값을 반환하기 위해서는 우선 함수 앞에 타입에 반환 시켜줄 자료형 타입(숫자를 반환 시킬거라면 int, 문자열이라면 String, 숫자형 배열이라면 int[] 등)을 꼭 적어줘야 한다.

 

또한, 함수 내에서 값을 반환하는 경우 return 이라는 키워드를 사용해야 한다.

이때 return 뒤로는 반환타입과 동일한 타입이 나올 수 있도록 작성해주면 된다.

 

public static int add(int a, int b) {
    return a + b;
}

위의 코드는 두 정수 값을 인자로 받고, 두 숫자의 합을 반환해주는 함수이다.

main 함수 쪽에서 add(1,2)를 써주면 return에 있는 a+b로 인해서 3을 반환시켜 주는 것이다.

반응형

댓글