함수
프로그래밍에서 함수(function)란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합이며
크게 표준 함수와 사용자 정의 함수로 구분할 수 있다
Kotlin에서 함수를 정의하는 방법은
fun 뒤에 함수명을 적고 소괄호안에 매개변수에 이름과 타입을 지정한뒤 : 뒤에 반환 값에 타입을 적고 중괄호안에 실행시킬 코드를 적으면 된다
코드
1
2
3
4
5
6
7
fun main(){
println(3+5)
}
fun plus(a:Int,b:Int):Int{
return a+b
}
출력
1
8
코드를 뜯어보면 앞에서
1
2
3
fun plus(a:Int,b:Int):Int{
return a+b
}
로 plus라는 a+b를 돌려주는 함수를 정의 했고
1
2
3
4
fun main(){
println(3+5)
}
에서 호출하였기에 출력과 같은 결과가 나온 것이다
return
return은 뜻 그대로 현재 함수에서 빠져나가 그 함수를 호출한 곳으로 되돌아 가게 하는 것과 함수내의 변수 또는 일정값을 되돌려 주는 역할은 한다
코드
1
2
3
4
5
6
7
fun main(){
print(p())
}
fun p(): String {
return "실행"
return "실행 안됨"
}
출력
1
실행
함수가 종료되는 방법은 두 가지가 있는데 하나는 반환이 되어 종료를 하게 되는 것이고 다른 하나는 함수의 끝 부분 까지 실행하여 종료되는 것이다
그렇기에 return 0에서 함수가 종료되어 뒤에 문장을 실행되지 못한 것이다
가변 인자
함수를 선언할 때 매개변수에 vararg를 붙여주면 매개변수의 개수가 정해지지 않게 즉 가변으로 받을 수 있다
코드
1
2
3
4
5
6
7
8
9
10
fun main(){
print(avg(1,2,3,4,5,6,7,8,9,10))
}
fun avg(vararg a:Int): Double {
var num =0
for (i in a){
num+=i
}
return (num.toDouble()/a.size)
}
출력
1
5.5
avg 함수는 a를 가변으로 받고 for문으로 a를 하나 씩 가져와서 num이라는 변수에 더해준 뒤 num을 a에 개수로 나눠 평균 값을 구해주는 함수이다
출력이 5.5가 나온 까닭을 보면 main 함수에서 1부터 10까지 입력하였고 1부터 10에 합인 55에 10을 나눠서 5.5가 나온 것이다