minzee
개발 기록장
minzee
전체 방문자
오늘
어제
  • 분류 전체보기 (93)
    • 회고록 (0)
    • 활동 (15)
      • 우아한테크코스 7기 FE 프리코스 (4)
      • 원티드 프리온보딩 FE 챌린지 (1)
      • 위니브 엠버서더 3기 (10)
    • CS 공부 (5)
    • 코테 공부 (44)
      • BOJ (33)
      • Computer Algorithm (10)
      • Data Structures (1)
    • 개발 공부 (25)
      • Modern JS Deep Dive (5)
      • JavaScript & TypeScript (3)
      • React (0)
      • React-Native (0)
      • HTML & CSS (7)
      • Git & GitHub (1)
      • Kotlin (2)
      • Python (3)
      • C++ (2)
      • Linux (1)
    • 학교 (3)
      • 2 - 1 학기 (3)
      • 4 - 1 학기 (0)
    • 자격증 (1)
      • TOPCIT (0)
      • 정보처리기사 (1)
      • SQLD (0)

블로그 메뉴

  • Github
  • Naver Blog
  • Instagram
hELLO · Designed By 정상우.
minzee

개발 기록장

[GURU 2] 2일차 : Kotlin의 기본 문법 | 조건문 배열 반복문
개발 공부/Kotlin

[GURU 2] 2일차 : Kotlin의 기본 문법 | 조건문 배열 반복문

2022. 6. 30. 01:25

조건문

if문 if-else문

if(조건식) {
//true면 실행
}

if(조건식) {
//true면 실행
}
else {
//false면 실행
}

when문

여러 가지 경우에 따라서 어떤 작업을 할 것인지를 결정한다. switch문과 비슷하다고 생각한다.

when(식) {
값1-> //결과가 값1이면 실행
값2-> //결과가 값2이면 실행
.
.
.
else-> //해당되는 값이 없으면 실행
}

예제 - 조건문 if when 사용하기

fun main() {
    var count: Int = 85
    if (count >= 90) {
        println("if문 : 합격 (장학생)")
    } else if (count >= 60) {
        println("if문 : 합격")
    } else {
        println("if문 : 불합격")
    }
    //방법 1
    println("방법 1")
    var score1: Int = (count / 10) * 10
    when (score1) {
        100 -> println("when문 : 합격 (장학생)")
        90 -> println("when문 : 합격 (장학생)")
        80, 70, 60 -> println("when문 : 합격")
        else -> println("when문 : 불합격")
    }
    //방법 2
    println("방법 2")
    var score2: Int = count
    when (score2) {
        in 90..100 -> println("when문 : 합격 (장학생)")
        in 69..89 -> println("when문 : 합격")
        else -> println("when문 : 불합격")
    }

}

 

실습 : 점수 따라 학점 나누는 프로그램 작성

fun main() {
    var count: Int = 85

    // 1) if-else문
    if (count >= 90)
        println("A학점")
    else if (count >= 80)
        println("B학점")
    else if (count >= 70)
        println("C학점")
    else if (count >= 60)
        println("D학점")
    else
        println("F학점")

    //2) when문
    when (count) {
        in 90..100 -> println("A학점")
        in 80..89 -> println("B학점")
        in 70..79 -> println("C학점")
        in 60..69 -> println("D학점")
        else -> println("F학점")
    }
}

 

배열

여러 개의 데이터를 하나의 변수에 저장하기 위해 사용한다.

일차원 배열 & 이차원 배열

1차원 배열 선언 형식

1. Array()

 선언 당시에 배열의 크기가 정해져 있다. 또한 크기를 선언 후 배열의 크기를 변경할 수 없습니다.

//방법 1
var 배열명 = Array<데이터 형식>(개수, {초기값})
//방법 2
var 배열명 = Array<데이터 형식>(개수) {초기값}

//배열 선언 및 값 대입 예시
var one = Array<Int>(4, {0})
one[0] = 10
one[3] = 20

2. arrayOf()

val numbers = arrayOf(4, 5, 7, 3) // 정수형으로 초기화된 배열
val animals = arrayOf("Cat", "Dog", "Lion") // 문자열형으로 초기화된 배열

3. arrayOfNulls()

빈배열을 선언한다.

 

Array()와 arrayOf()의 차이점

arrayOf()는 선언과 동시에 개별 원소 값을 지정할 수 있는 반면에

Array는 개별 원소값을 지정할 수 없다. 대신 람다식을 활용할 수 있다. 

 

2차원 배열 선언 형식

var 배열명 = Array<배열 데이터 형식>(행 개수, {배열 데이터 형식(열 개수)}

//배열 선언 및 값 대입 예시
var two = Array<IntArray>(3, {IntArray(4)})
two[0][0] = 100
two[2][3] = 200

 

밑에 예시와 같이 여러 배열로 하나의 배열로 선언할 수 있다.

val array1 = arrayOf(1, 2, 3)
val array2 = arrayOf(4, 5, 6)
val array3 = arrayOf(7, 8, 9)

//방법 1
val arr2d = arrayOf(array1, array2, array3)
//빙법 2
val arr2d = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6), arrayOf(7, 8, 9))

 

배열을 선언하면서 값을 바로 대입하는 것도 가능하다.

var three : IntArray = intArrayOf(1,2,3)

 

ArrayList

크기가 자유롭고 값을 수정할 수 있다. add와 remove 사용이 가능하다.

var one = ArrayList<Int>(4)
one.add(10)
one.add(20)
var sum = one.get(0) + one.get(1)

 

반복문

for문

C++에서 많이 접한 반복문이지만 문법이 조금 다르다. <와 ++나 -- 사용하는 대신 in와 step이라는 명령어를 사용한다.

for (변수 in 시작 .. 끝 step 증가량) {
//반복 실행
}
//배열의 개수만큼 변수에 대입하여 반복하는 방법
for (변수 in 배열명.indices) {
//반복 실행
}

//예시
var one : IntArray = IntArrayOf(10,20,30,40)
for (i in one.indices) {
	println(one[i])
}

다음 코드를 보면 배열의 내용이 하나씩 변수에 대입된 후 for 문 내부가 실행된다.

➡️배열의 개수만큼 for 문이 반복된다.

//i(첨자) 없이 바로 배열의 값을 하나씩을 처리하는 방법
for (변수 in 배열명) {
//이 부분에서 변수 사용
}

 

while문

while (조건식) {
//true면 이 부분을 실행
}

break와 continue의 차이점

break ➡️ 무조건 반복문 밖으로 나간다.

continue ➡️ 무조건 끝으로 건너뛴 후에 다시 반복문으로 돌아간다.

 

예제

* $ - 변수 표시

//ForSum.kt

fun main() {
    var sum = 0

    for (x in 1..10) {
        sum += x
    }
    println("sum: $sum")

    sum = 0
    for (x in 1..10)
        sum += x
    println("sum: $sum")
}

//whileSum.kt

fun main() {
    var sum = 0
    var x = 0

    while (x <= 10) {
        sum += x
        x++
    }
    println("sum: $sum")

    sum = 0
    x = 0

    do {
        sum += x
        x++
    } while (x <= 10)
    println("sum: $sum")
}

 

fun main() {
    var one: IntArray = intArrayOf(10, 20, 30)
    for (i in one.indices)
        println(one[i])

    for (value in one)
        println(value)

    var two: Array<String> = arrayOf("하나", "둘", "셋")
    for (i in 0..2 step 1)
        println(two[i])

    var k: Int = 0
    while (k < two.size) {
        println(two[k])
        k++
    }
}

 

실습

1) 3X3 크기의 2차원 배열 선언하고 for문을 이용하여 값을 할당하는 프로그램 작성

fun main() {
    var two = Array<IntArray>(3,{IntArray(3)})
    //var three = arrayOf(arrayOf(100,110,120), arrayOf(130,140,150), arrayOf(160,170,180))

    var value : Int = 100
    for (i in 0..2)
    {
        for(j in 0..2)
        {
            two[i][j] = value
            value += 10
            println("two[$i][$j]: ${two[i][j]}")
        }
    }
}

2) 5단부터 8단까지 구구단을 출력하는 프로그램을 for문으로 작성

fun main() {
    println("***********")
    for(i in 5..8) {
        for (j in 1..9) {
            println("$i X $j = ${i * j}")
        }
        println("***********")
    }
}

3) 1부터 100사이의 홀수를 누적하는 프로그램을 while문으로 작성

fun main() {
    var sum = 0
    var i = 0

    while(i <= 100) {
        if(i % 2 == 1) {
            sum += i
        }
        i++
    }
    println("sum(while) = $sum")

    sum = 0
    i = 0

    for(i in 1..100 step 2){
            sum += i
    }
    println("sum(for) = $sum")
}

저작자표시 (새창열림)

'개발 공부 > Kotlin' 카테고리의 다른 글

[GURU 2] 1일차 : Kotlin의 기본 문법 | 변수와 데이터 형식 (var val의 차이)  (0) 2022.06.29
    '개발 공부/Kotlin' 카테고리의 다른 글
    • [GURU 2] 1일차 : Kotlin의 기본 문법 | 변수와 데이터 형식 (var val의 차이)
    minzee
    minzee
    🇩🇮🇬🇮🇹🇦🇱 🇲🇪🇩🇮🇦 & 🇸🇴🇫🇹🇼🇦🇷🇪 🇨🇴🇳🇻🇪🇷🇬🇪🇳🇨🇪

    티스토리툴바