GDSC HUFS 3기/Android with Kotlin Team 4

[4팀] Section 6 : Kotlin - Decisions and Loops

devDonghyun 2021. 10. 4. 22:12

이 글은 udemy 강의를 참고하여 작성하였습니다.

작성자 : 안동현

개발환경은 Windows, Android Studio입니다. 

 

🥰 Kotlin 개발 팁

1. 안드로이드 스튜디오 하단 메뉴에 Logcat/Info에서

  메시지나 변수 내용 등을 알고 싶을 때 Log를 쓴다.

  Log를 사용하고 싶다면 아래 라이브러리를 import 해주면 된다.

import android.util.Log
코드 의미 설명
Log.i information 간단한 정보 표시용
Log.d debug 디버깅 용
Log.e error 실제 에러 메시지
Log.w warning 경고 메시지
Log.v verbose 개발에 필요한 내용 출력 (개발자용)

 

1. Kotlin의 반복문 :  for / while / do while / repeat


* for

 

for 문제어 변숫값을 증감하면서 특정 조건이 참일 때까지 for문을 반복해서 실행합니다.

 

- 범위 연산자 in

for문을 이용해 1부터 100까지 1씩 증가하면서 for문의 실행 영역을 반복하라는 의미입니다.

var num: Int = 0
for (i in 1..100) {
	num += i
}

println(num)

 

- 여러 형태의 for문

for (i in 1 until 10) {}   // 1부터 9까지 1씩 증가 (10 제외)
for (i in 2..10 step 2) {} // 2부터 10까지 2씩 증가
for (i in 10 downTo 1) {}  // 10부터 1까지 1씩 감소

 

* while

while 문은 조건이 참이면 중괄호 {}로 지정한 영역을 반복해서 실행합니다.

var myCount = 0

while (myCount <100) {
	Log.i("myCount= ", "$myCount")
    myCount++
}

Log.i("After while Loop= ", "$myCount")

// while문이 끝나고 난 후의 x의 값은?

 

* do while

 

최소한 한번은 실행하고 싶을 때 사용하는 반복문입니다.

var myCount = 0

do {
    Log.i("myCount= ", "$myCount")
    myCount++
} while(myCount == 0)

Log.i("After do while Loop= ", "$myCount")

// do while문이 끝나고 난 후의 x의 값은?

 같은 조건이었다면 while문아무 것도 출력하지 않을 것입니다.

그러나, do while문조건이 틀려도 한번은 꼭 실행되기 때문에, "myCount= 0"을 출력합니다.

 

 

 * repeat

 

repeat은 주어진 횟수만큼 특정 구문을 반복합니다.

repeat(5) { // 무조건 Int만 들어가야 한다
	println("Print 5 Times!")
}

 

 * break / continue

 

반복문 중간에서는 break로 반복문을 멈추거나 continue로 다음 구문을 건너뛰는 것도 물론 가능합니다.

 

 

 

2. Kotlin의 조건문 : if~else / when


 * if~else

 Kotlin의 조건문 if~else는 조금 특이합니다. 😂

다른 프로그래밍 언어에서 처럼 조건문으로 사용할 수도 있으며,

if~else를 표현식(expression)으로 쓸 수도 있습니다.

 

단순히 조건에 맞는 영역을 실행하는 용도가 아니라 결괏값을 반환하는 표현식으로도 쓸 수 있는 것이죠.

 

// 표현식으로서의 if~else
// 표현식으로 쓸 때는 항상 if, else가 세트!

var num = 1
val result = if (num > 0) {
	println("num > 0")
	true  // 참일 때 반환값
} else {
	println("num < 0")
	false // 거짓일 때 반환값

 

 * when

 c의 switch 구문과 유사하지만 훨씬 쓰기 편한 when 구문입니다.

 when 다음의 소괄호에 넣은 데이터가 조건이 되고 이 값에 따라 각 구문을 실행합니다.

var mike = 19

when (mike) {
	16 -> textView.setText("Mike is 16 years Old")
	17 -> textView.setText("Mike is 17 years Old")
	18 -> textView.setText("Mike is 18 years Old")
	19 -> textView.setText("Mike is 19 years Old")
	else -> textView.setText("Mike is < 16 or > 20")
}

 

 

 정수가 아닌 다른 데이터 타입, 범위 등으로 다양하게 명시할 수도 있습니다.

var mike = 16
when (mike) {
	is String -> println("mike's age is String")
	20, 30 -> println("mike's age is 20 or 30")
    in 1..10 -> println("mike's age range is 1..10")
    else -> println("mike's age is invalid")
}


// when 구문의 실행 결과는 무엇일까요?

 

 when~else도 if~else 구문처럼 표현식으로 사용할 수 있습니다! 값을 반환할 수 있다는 뜻이죠!!

물론 if~else 처럼 when~else 도 서로 세트입니다! else를 빼먹지 않도록 조심하세요~🤗