함수(Functions)

함수는 def를 통해 선언한다. 함수의 이름은 변수와 마찬가지로 규칙에 따라 정해야한다.

값을 받아 함수를 처리하려면 파라미터가 있어야한다. 파라미터는 괄호( )에 들어가는 변수이다.

def print_name(name):     # 'name' => 매개변수(파라미터)
    print(f'이름은 {name}입니다')

print_name("김토끼")
print_name("이토끼")     # "김토끼", "이토끼", "박토끼" => 인자(인수)
print_name("박토끼")

파라미터는 함수를 정의하는 부분에 쓰인 변수, 인자는 함수를 실행할 때 넘겨지는 값이라고 보면 된다.

 

함수를 정의할 때 파라미터를 반드시 사용하지 않아도 된다.

def print_ex_string():
    print('예시 문자열입니다.')

print_ex_string()

 

파라미터를 두 개 이상 사용해도 된다.

def print_name_age(name, age):
    print(f'이름은 {name}이고 {age}살 입니다.')

print_name_age("김토끼", "3")

 

파라미터에 기본값을 설정하면 인자를 주지 않아도 오류가 발생하지 않는다.

def order_coffee(qty, option = 'hot'):
    print(f'{qty}잔 / {option}')

order_coffee(3, 'iced')
order_coffee(3)

주의할 점은 기본값이 있는 파라미터는 기본값이 없는 파라미터의 뒤에 와야한다.

 

파라미터를 직접 가져와 입력하면 순서에 상관없이 입력할 수 있다.

def order_coffee(qty, option = 'hot'):
    print(f'{qty}잔 / {option}')

order_coffee(option ='iced', qty = 5)

 

return은 값을 반환시켜 다른 곳에 사용할 수 있도록 해준다.

def get_id(email):

    email_id = email.removesuffix('@test.com')
    print(email_id)

    return email_id

user_id = get_id('user@test.com')
print(user_id)

 

return이 없으면 user_id는 값이 없는 변수가 된다.

def get_id(email):

    email_id = email.removesuffix('@test.com')
    print(email_id)

    # return email_id

user_id = get_id('user@test.com')
print(user_id)

 

if 문을 활용한 함수

def get_id(email):

    if email.endswith('@test.com'):
        email_id = email.removesuffix('@test.com')
        print(email_id)
        return email_id
    else:
        print('처리할 수 없는 이메일 주소입니다.')

user_id = get_id('user@example.com')
print(user_id)

 

 

모듈

연관이 있는 함수들의 집합

모듈로 함수를 관리하게 되면 하나의 라이브러리처럼 만들어서 다양한 프로그램에 공통적으로 활용할 수 있다.

 

먼저 모듈로 사용할 파일을 만든다.

def get_id(email):

    if email.endswith('@test.com'):
        email_id = email.removesuffix('@test.com')
        print(email_id)
        return email_id
    else:
        print('처리할 수 없는 이메일 주소입니다.')

함수를 넣어준 뒤, 저장한다.

 

새로운 파일에서 모듈에 있는 함수를 불러와 활용할 수 있다.

from id_getter import get_id

user_id = get_id('user@test.com')
print(user_id)

from은 모듈의 파일명이고 import는 모듈에서 불러올 함수의 이름이다.

 

 

'Back-End > Python' 카테고리의 다른 글

객체지향  (0) 2023.08.09
회원가입 프로그램 실습 - 파이썬(Python) 편  (0) 2023.08.08
자료구조 - 리스트 / 튜플 / 딕셔너리  (0) 2023.07.27
조건문과 반복문  (0) 2023.07.20
변수와 자료형  (0) 2023.07.19
함수(Methods)

프로그래밍에서는 한줄의 코드가 아니라 여러 줄의 코드를 조합해서 작업을 수행한다. 그런데 반복적으로 어떤 작업을 처리해야 할 때, 동일한 코드를 여러 번 작성하는 것은 비효율적이다. 그렇기 때문에 어떠한 하나의 작업단위를 이루는 여러가지 코드를 한 묶음으로 만들어서 재사용 할 수 있도록 만든 것이 바로 함수, 또는 메서드라고 한다.

일반적으로 메서드(Method)는 클래스(class)의 기능적인 부분을 나타내는 함수(function)를 나타내는데, 자바에서는 모든게 클래스로 관리되기 때문에 메서드라는 이름으로 통용하고 있다.

 

1. 입력과 출력이 모두 있는 경우

출력은 콘솔의 문자 출력이 아닌 데이터 반환을 뜻한다.

static int mod (int a, int b) {
    int result = a % b;
    return result;
}

반환할 데이터 타입을 정한 후, 메서드의 이름을 정의한다. 괄호 안에는 매개변수, 즉 파라미터(parameter)로 정의한다. 그리고 매개 변수로 받은 값을 함수에서 어떤 식으로 사용할지에 대해 코드로 표현한다. 다시 데이터를 반환해서 사용할 수 있도록 하기 위해 return함수를 사용한다.

 

2. 입력은 있는데 출력은 없는 경우

static void printNum (int a) {
    System.out.println(a);
}

출력이 없다는 것은 아무런 데이터형으로도 만들 필요가 없다는 뜻이기 때문에 void라는 키워드를 작성한다. 서로 다른 메소드에서 쓰이는 변수들은 함수 내에서만 공유되므로 이름이 같아도 서로 공유되지 않는다. 위의 코드는 콘솔에서 출력될 뿐, a로 입력받은 데이터를 이후에 활용할 수 있도록 메모리에 저장해주지 않는다. 즉, 콘솔로 출력 후, a라는 데이터는 시스템에서 휘발된다.

 

3. 입력은 없는데 출력이 있는 경우

static String greeting() {
    return "Hello!";
}

입력값이 없기 때문에 파라미터 자리에는 아무 것도 입력하지 않는다. 그리고 위에서 지정한 데이터 타입인 문자열(String)을 리턴할 수 있도록 String 값을 넣어준다.

 

4. 입력과 출력이 모두 없는 경우

static void greeting_2() {
    System.out.println("Hello!");
}

위 코드는 콘솔로 출력만 하고 데이터 자체는 휘발된다.

 

static 안에서 실행되기 위해서는 함수에도 static이 붙어있어야한다.

 

이제 위의 모든 경우의 함수를 main에서 실행해보자.

public static void main(String[] args) {
	int mod_result = mod(3, 2); // 1번의 경우
	System.out.println(mod_result); // 1

	printNum(10); // 2번의 경우 // 10

	String str = greeting(); // 3번의 경우
	System.out.println(str); // Hello!

	greeting_2(); // 4번의 경우 // Hello!
}

 

 

'Back-End > Java' 카테고리의 다른 글

객체지향 - 객체지향 프로그래밍  (0) 2023.05.18
회원가입 프로그램 실습 - 자바(Java) 편  (1) 2023.05.16
자료구조 - 배열, 리스트, 맵  (0) 2023.05.12
제어문 - 조건문과 반복문  (0) 2023.05.11
연산자  (0) 2023.05.10

+ Recent posts