JAVA

함수(function)

jiyoon12 2025. 4. 24. 00:16
  • 하나의 기능을 수행하는 일련의 코드 묶음이다.
  • 구현된 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환된다.
  • 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있다.
  • 코드의 재사용성을 높이고, 프로그램의 구조를 체계적으로 관리할 수 있게 도와준다.

 

package ch07;

public class Function1 {

    // 함수를 만들어 보자.(함수를 설계하는 코드)
    // 함수 만들기 위해서는 당연히 머리속에 어떻게 코드를 만들지 들어가 있어야한다.
    // 두 개의 정수값을 받아서 덧셈 연산을 하고 그 결과를 반환하는 함수를 만들꺼야

    // static -> 아직 생략
    // int <--- 반환될 데이터의 타입
    // add <--- 함수의 이름
    // 괄호(n1,n2) <-- 매개 변수(파라미터)
    //{...} <--- 함수의 몸체 (body)
    static int add(int n1, int n2) {
        // int result = n1 + n2;
        // 클래스 바로 아래 쓰는 변수 - 멤버변수
        // 함수 안에 선언하는 변수 - 지역 변수
        int result; // 지역변수를 선언
        result = n1 + n2;
        return result;
    }

    // 기능 묶음(세개의 정수값을 받아서 덧셈 연산 하는 함수이다)
    static int add2(int n1, int n2, int n3) {
        int result; // 지역 변수 선언 - 반드시 초기화 필요
        result = n1 + n2 + n3;
        return result;
    }

    static double add3(double d1, double d2) {
        double result = d1 + d2; // 지역 변수 선언과 동시에 초기화(값을 넣다)
        return 0.0;
    }

    // 함수 -> 콘솔 창에 안녕 내 나이는 xx 이야 출력하는 함수를 만들어 보자.
    static void sayHello(int myAge) {
        System.out.println("안녕 내 나이는" + myAge + " 이야");
        // 리턴 타입 void  - 반환 값이 없다. 그래서 return 키워드를 사용하지 않아도 된다.
    }
}
package ch07;

// 코드를 실행 시켜보는 측
public class FunctionMainTest1 {

    // main 함수
    public static void main(String[] args) {

        // 여기에서 함수를 호출해서 사용할 수 있어
        int sub1Result1 = sub1(100, 50); // 함수 호출은 모양 맞추기 이다.
        System.out.println("sub1result1 : " + sub1Result1);
        int sub2Result2 = sub1(5, 1);
        System.out.println("sub2Result2 : " + sub2Result2);
//        함수 호출할 때 모양을 맞춰야 한다.
//        sub1(0.5,1);
//        sub1(true,1);
//        sub1("반가워",1);

        // add1 함수 호출
        int sub3Result3 = add1(10, 20, 30);
        System.out.println("sub3Result3 : " + sub3Result3);


    } // end of main

    // 함수 선언 - 두 수를 받아서 뺄셈하는 함수를 설계해보자.
    static int sub1(int n1, int n2) {
        int result = n1 - n2;
        return result;
    }

    static int add1(int n1, int n2, int n3) {
        int result = n1 + n2 + n3;
        return result; // 실행의 제어권 반납
    }
} // end of class