본문 바로가기

문돌이 존버/앱 개발 스터디

코틀린(Kotlin) 기초 문법 배우기 (2)

반응형
본 글은 스파르타 코딩 클럽의 "안드로이드 앱개발 기초반" 강의를 듣고 작성한 개발일지입니다.

오늘은 코틀린의 기초 문법 중 함수, 조건문, 반복문에 대해 살펴보려고 합니다.

함수

// 만들기
fun 함수이름(필요한 변수들) {
    내릴 명령어들을 순차적으로 작성
}
// 함수 사용
함수이름(필요한 변수들)

// 동작을 실행하고 결과를 돌려주는 경우
fun 함수이름(필요한 변수들): return 타입 {
    내릴 명령어들을 순차적으로 작성
    return 돌려주려는 결과값
}
// 사용하기
var 함수결과저장변수 = 함수이름(필요한 변수들)

자주 쓰이는 데이터 타입은 아래의 예시와 같습니다.

// number
var one: Int = 1
var pi: Double = 3.14

// string
var name: String = "준"

// T&F
var isEasy: Boolean = true
var isHard: Boolean = false

직접 함수를 만들고 사용하는 몇 개의 예시들을 살펴보도록 하겠습니다.

// 두 숫자 입력 후 덧셈
fun printSum(num1: Int, num2: Int) {
    println(num1 + num2)
}

printSum(3, 5) // 8
printSum(4, -1) // 3
// 두 숫자를 입력 후 더한 결과를 리턴하는 함수
fun sum(num1: Int, num2: Int): Int {
    return num1 + num2
}
var sumResult = sum(3, 5)
println(sumResult) // 8

sumResult = sum(4, -1)
println(sumResult) // 3
fun calculateAge(calYear: Int, birthYear: Int): Int {
    return calYear - birthYear
}

var calAge = calculateAge(2020, 1980)
println(calAge) // 40

// 입력하는 값 순서에 따라 다른 결과값 리턴
println(calculateAge(1980, 2020)) // -40

조건문

// 입력되는 수와 90 간의 대소비교
fun compareNinety(num: Int) {
    if (num > 90) {
        println("90보다 커요!")
    } else {
        println("90보다 작거나 같아요!")
    }
}

compareNinety(30) // "90보다 작거나 같아요!"
fun isAdult(age: Int): Boolean {
    if (age > 19) {
        return true
    } else {
        return false
    }
}
    
var result = isAdult(20)
println(result) // true
fun isJun(name: String): Boolean {
    if (name == "Jun") {
        return true
    } else {
        return false
    }
}
    
var result = isJun("Jun")
println(result) // true
// AND & OR 조건
fun isTwenty(age: Int): Boolean {
    if (age >= 20 && age < 30) {
        return true
    } else {
        return false
    }
}

fun isNotTwenty(age: Int): Boolean {
    if (age < 20 || age >= 30) {    // not 조건도 사용 가능 if (!(age >= 20 && age < 30))
        return true
    } else {
        return false
    }
}

println(isTwenty(25)) // true
println(isNotTwenty(25)) // false
// if, else if, else if else
fun checkGeneration(age: Int) {
    if (age > 120) {
        println("와, 19세기에 태어나셨군요!")
    } else if (age >= 100) {
        println("100세 이상! 숫자가 세자리네요.")
    } else if (age >= 80) {
        println("80세 이상! 인생은 여든부터!")
    } else {
        println("젊으시군요! 개발을 취미로 가져보세요.")
    }
}

var myAge = 55
checkGeneration(myAge)

반복문

// 숫자 범위를 나타낼 때 ".." 사용
for (변수 in 리스트) {
    매 반복마다 실행될 명령어들
}

for (i in 0..99) {
    println(i)
}
var languages = listOf("Korean", "English", "Kotlin", "Python", "Java", "JavaScript")

for (language in languages) {
	println(language)
}

/**
Korean
English
Kotlin
Python
Java
JavaScript
*/
var users = listOf(
  mapOf("FirstName" to "르탄", "LastName" to "박"),
  mapOf("FirstName" to "안드", "LastName" to "이"),
  mapOf("FirstName" to "로이", "LastName" to "김"),
  mapOf("FirstName" to "개발", "LastName" to "최"),
  mapOf("FirstName" to "스파", "LastName" to "김"),
)

for (user in users) {
  println(user)
}

/**
{FirstName=르탄, LastName=박}
{FirstName=안드, LastName=이}
{FirstName=로이, LastName=김}
{FirstName=개발, LastName=최}
{FirstName=스파, LastName=김}
*/
var users = listOf(
  mapOf("이름" to "르탄", "성" to "박"),
  mapOf("이름" to "안드", "성" to "이"),
  mapOf("이름" to "로이", "성" to "김"),
  mapOf("이름" to "개발", "성" to "최"),
  mapOf("이름" to "스파", "성" to "김"),
)

for (user in users) {
  if(user["성"] == "김") {
    println(user)
  }
}

/**
{이름=로이, 성=김}
{이름=스파, 성=김}
*/

더 다양한 예시로 코틀린 문법에 익숙해져 볼까요?

1. 1부터 100까지 짝수 합 출력하기
var result = 0
for (num in 1..100) {
    if (num % 2 == 0) {
        result += num
    }
}

println(result) // 2550
// 함수 버전
fun sumEven(n: Int): Int {
    var result = 0
    for (num in 1..n) {
        if (num % 2 == 0) {
            result = result + num
        }
    }
    return result
}

println(sumEven(100)) // 2550
println(sumEven(200)) // 10100
2. 80점 이상의 점수 갯수 출력하기
var scores = listOf(81, 79, 80, 30, 50, 100, 99, 56, 0, 12)

var count = 0
for (score in scores) {
    if (score >= 80) {
        count += 1
    }
}

println(count) // 4
var scores = listOf(81, 79, 80, 30, 50, 100, 99, 56, 0, 12)
fun countScore(bottom: Int): Int {
    var count = 0
    for (score in scores) {
        if (score >= bottom) {
            count += 1
        }
    }
    return count
}

println(countScore(80))
println(countScore(90))

퀴즈

1. n과 m을 입력받아 n~m까지의 합을 출력하는 함수 sum을 만들어본다.

fun printSum(n: Int, m: Int): Int {
    var sum = 0
    for (i in n..m) {
        sum += i
    }
    return sum
}
println(printSum(1, 100)) // 5050

2. 성적표에서 성적 A의 갯수 출력하기

var reportCards = listOf("A", "B", "A", "C", "D", "F", "B", "A", "A", "C")
fun countScore(bottom: String): Int {
    var count = 0
    for (score in reportCards) {
        if (score == bottom) {
            count += 1
        }
    }
    return count
}
println(countScore("A"))
println(countScore("F"))
728x90
반응형