Kotlin 기초문법(4)

박재원·2023년 12월 1일
0

TIL

목록 보기
6/50
post-thumbnail

kotlin의 흐름 제어에는 조건문과 반복문 크게 두 가지가 있다. 나는 프로그래밍 언어 문법 중에 조건문과 반복문이 중요하다고 생각한다. 왜냐하면 코딩을 할 때 조건문과 반복문의 비중이 크고 완벽하게 익히지 않으면 기초 단계부터 무너질 수 있기 때문이다. 오늘은 이 두 가지를 완벽하게 이해하기 위해 정리를 해보려 한다.

조건문

if 문

  • if문은 뜻 그대로 만약, ~라면 이라는 뜻이다.
val x = 10

if (x > 5) { //true
    println("x는 5보다 큽니다.") //println출력
}

위 코드처럼 변수 x의 값을 10으로 설정하고 if문의 조건식으로 x가 5보다 크면 if문 중괄호안에 코드가 실행되는 방식이다.

else if / else문

  • else if와 else문은 if문의 조건식이 참이 아닐 때 다른 조건문을 실행 할 수 있는 조건문이다.
    var koreanScore = 80
    var englishScore = 88
    var mathScore = 79
    var average = (koreanScore + englishScore + mathScore) / 3
    
    if(average >= 90) {
        println("당신의 등급은 A입니다")
    } else if(average >= 80) {
        println("당신의 등급은 B입니다")
    } else if(average >= 70) {
        println("당신의 등급은 C입니다")
    } else {
        println("당신의 등급은 F입니다")

average의 값은 80~89사이이다. if(average >= 90)이라는 조건식은 거짓이 된다. 그러므로 밑에 else if문이 실행된다. else if(average >= 80)는 참이기 때문에 안에있는 코드가 실행되어 "당신의 등급은 B입니다"라는 출력을 하게된다.

when 조건문

  • kotlin에는 java의 switch문이 없고 대신 다중 선택문 when이 있다.
  • when은 제일 위의 조건식부터 차례대로 판단하며 내려간다.
  • 일치하는 조건식을 찾으면 해당 표현식 또는 구문이 실행되고 when 구문은 마무리 된다.
  • 만약 when 조건문에서 찾지 못하면 else 구문이 실행된다. 따라서 when 조건문에서 else 구문은 필수이다.
var num : Int = 2

when (num) {
	1 -> print("num is 1")
    2 -> print("num is 2")
    else -> {
    	print("num is neither 1 nor 2")
    }
}

변수 num에 2를 넣고 when 조건문을 돌리게 되면 차례대로 찾다가 2라는 값을 찾아
"num is 2"라는 값을 출력하게 된다. 혹시라도 맞는 값이 없을 수 도 있으니 else문은 꼭! 넣도록 하자

반복문

for 반복문

  • for문은 안에 변수를 선언하고 그 변숫값을 증감하면서 특정 조건에 맞을때까지 구문을 반복 실행하는 것이다.
  • for문 안에 변숫값을 증감하는 방법은 여러가지가 있다.
for(i in 1..100) {}100까지 포함
for(i in 1 until 100) {}100은 포함하지 않음
for(x in 2..10 step 2) {}2씩 증가
for(x in 10 downTo 1) {} → 숫자 감소

for문 반복문 예시

내 이름을 10번 출력해요 (for)의 예시입니다

// 1부터 10까지 변화하는 i변수
for(i in 1..10) {
	 println("${i}번째: 내 이름은 참새")
}

while 반복문

  • while문은 for문과 다르게 증감식을 중괄호 안에서 한다.
  • 반복해서 실행되다가 조건이 충족되면 코드를 빠져나온다.
	var i = 0

    while(i < 10) {
        println("${i}번째: 내 이름은 참새")
        i++
    }

0개의 댓글