사전캠프 17일차

김재현·2024년 2월 22일

반복문

  • 반복문에는 for문과 while문 두 가지가 있고 반복문을 통하여 코드를 간소화시킬 수 있습니다.

    for문은 특정 횟수만큼 코드를 반복하기 위하여 사용합니다.

    while문은 특정 조건을 만족할 때까지 코드를 반복할 때 사용합니다. if문처럼 조건을 정할 수 있습니다.

for

  • for 문의 기본 형태는 다음과 같습니다.
for (반복할 범위) {

}

여기서 반복할 범위를 정해주는데 다음과 같은 종류가 있습니다.

in - 일반적인 형태

for (변수 in 시작값..종료값) {
}

until - 마지막 숫자 제외하기

for (변수 in 시작값 until 종료값) {
} // 종료값 이전까지만 반복합니다.

step - 건너뛰기

for (변수 in 시작값..종료값 step 증가값) {
} 
// 시작값부터 종료값까지 증가값 만큼 증가시켜서 반복합니다.

down to - 감소시키기

for (변수 in 시작값 down to 종료값) {
}

배열, 컬렉션에 들어 있는 엘리먼트 반복하기

for (변수 in 배열 또는 컬렉션) {
}

while

  • while 문은 특정 조건을 만족할 때까지 반복하는 반복문입니다.(반복가능한 if문으로 이해가능합니다.)

일반적인 while 반복문은 다음과 같은 형태로 나타냅니다.

while (조건식) {
}

do와 함께 사용
ex)

var game = 1
var match = 6
do {
    Log.d("while", "${game}게임 이겼습니다. 우승까지 ${match-game}게임 남았습니다.")
    game +=1
} while (game < match)
  • while 문과의 do ~ while 문의 차이는 while 문의 조건과는 별개로 do 안의 코드를 한 번 실행합니다.

반복문 제어하기

  • 반복문이 실행되는 도중에 특정 조건에서 반복문을 벗어나거나 다음 반복문으로 넘어갈 때 사용하는 두 가지 방법이 있습니다.

break - 반복문 탈출하기
ex)

for (index in 1..10){
    Log.d("break", "현재 index는 $index 입니다.")
    if (index > 5){
        break
    }
}
  • 5보다 크면 break가 실행되어 for 블록을 빠져나갑니다.

continue - 다음 반복문으로 넘어가기
ex)

for (exceptin 1..10) {
    if (except > 3 && except < 8){
        continue
    }
    Log.d("continue", "현재 index는 $except 입니다.")
}
  • 반복문에서 continue를 만나면 다음 코드는 실행하지 않고 반복문의 처음으로 돌아갑니다.

함수

  • 함수는 코드를 사용할 수 있는 최소 단위로 fun으로 정의하고 return으로 값을 반환합니다.

  • 함수를 정의할 때 입력값을 기술한 것을 파라미터라고 합니다.

기본적인 구조는 다음과 같습니다.

fun 함수명 (파라미터 이름: 타입): 반환 타입 {
    return 값
}
  • 파라미터와 반환값이 없는 함수는 작성하지 않습니다.(Log에 정의된 Log.d 함수가 대표적)

  • 함수를 호출할 때 괄호 안에 값을 넣어서 전달하는데 이 때 입력되는 값의 타입은 함수에 정의된 파라미터 타입과 동일해야 합니다.

함수의 사용

  • 함수는 이름 뒤에 괄호를 붙여서 명령어를 실행하는 형태입니다. ex) 함수명(값)

  • 함수는 이름만 호출하면 실행되지 않고 반드시 괄호를 붙여야 실행됩니다.

  • 괄호를 붙이지 않으면 함수의 코드가 실행되지 않고 마치 값처럼 인식됩니다.

반환값과 입력값이 있는 함수의 정의

  • square() : Int 타입의 x라는 입력 파라미터를 갖는 함수
fun square(x: Int): Int {
    return x * x
}

반환값과 입력값이 있는 함수의 호출

  • 파라미터에 전달할 값을 입력하고 반환값은 대입 연산자(=)로 변수에 담은 후에 사용합니다.
    ex)
var squareResult = square(30)
Log.d("fun", "30의 제곱은 ${squareResult}입니다.")

반환값이 없는 함수의 정의

  • printsum() : 반환값 없이 입력값을 받아 Log로 출력하는 함수
fun printsum(x: Int, y: Int) {
    Log.d("fun", "x + y = ${x + y}")
}

반환값이 없는 함수의 호출

  • 반환값이 없으면 대입 연산자(=)를 사용하지 않고 바로 호출합니다.
printSum(3, 5)

입력값 없이 반환값만 있는 함수의 정의

  • getPi() : 호출한 측으로 3.14를 반환하고 종료됩니다.
fun getPi() : Double {
    return 3.14
}

입력값이 없는 함수의 호출

  • 입력값이 없다면 괄호만으로 실행하고 결괏값을 받을 수 있습니다.
val PI = getPi()
Log.d("fun", "지름이 10인 원의 둘레는 ${10 * PI}입니다.)

함수 파라미터의 정의

  • 파라미터는 변수처럼 '이름: 타입'의 형태로 여러 개의 파라미터가 정의될 경우는 콤마로 구분합니다.

  • Kotlin에서 파라미터의 값은 이뮤터블로 읽기 전용 키워드 val이 생략된 형태하고 생각할 수 있습니다.

  • 파라미터의 기본값은 다음과 같습니다.
fun 함수명((val 생략) name1: String, name2: Int, name3: Double) {
    실행 코드 
}
  • 함수에 정의된 파라미터가 많을 경우 입력하는 값의 의미가 명확하지 않을 때가 있으므로 다음과 같이 파라미터 이름을 지정해서 직접 값을 입력할 수 있습니다.
newFunction(name = "Michael",name2 = 28, name3 = 67.5)

0개의 댓글