728x90
반응형
조건문 if~else와 표현식
프로그램의 흐름 제어
// if~else 문 사용 예
fun main() {
var data = 10
if (data > 0) {
println("data > 0")
} else {
println("data <= 0")
}
}
→ 실행 결과
data > 0
// 조건을 여러 개 나열한 예
fun main() {
var data = 10
if (data > 10) {
println("data > 10")
} else if ("data > 0 && data <= 10") {
println("data > 0 && data <=10")
} else {
println("data <= 0")
}
}
→ 실행 결과
data > 0 && data <= 10
// 표현식으로 사용 예
fun main() {
var data = 10
val result = if(data > 0) {
println("data > 0")
true // 참일 때 반환
} else {
println("data <= 0")
false // 거짓일 때 반환
}
println(result)
}
→ 실행 결과
data > 0
true
표현식(expression)
- 결과값을 반환하는 계산식
var result = if() {} else {}
- if~else 문으로 조건에 맞는 코드 실행하는 동작 + 그 결과값을 result 변수에 대입
else 생략 X 항상 있어야 함
if~else 표현식이 반환하는 결과값은 각 영역의 마지막 줄
조건문 when
// when 문 사용 예
→ 실행 결과
fun main() {
var data = "hello"
when (data) {
"hello" -> println("data is hello")
"world" -> println("data is world")
else -> {
println("data is not valid data")
}
}
}
data is 10
when 키워드 + (조건)
// 문자열 타입을 조건을 사용
fun main() {
var data = "hello"
when (data) {
"hello" -> println("data is hello")
"world" -> println("data is world")
else -> {
println("data is not valid data")
}
}
}
→ 실행 결과
data is hello
// 다양한 유형의 조건 제시
fun main() {
var data: Any = 10
when(data)
is String -> println("data is String") // data가 문자열 타입이면
20, 30 -> println("data is 20 or 30") // data가 20 또는 30이면
in 1..10 -> println("data is 1..10") // data가 1~10의 값이면
else -> println("data is not valid")
}
}
→ 실행 결과
data is 1..10
is: 타입을 확인하는 연산자/ in: 범위 지정 연산자
// 조건만 명시한 예
fun main() {
var data = 10
when {
data <= 0 -> println("data is <= 0")
data > 100 -> println("data is > 100")
else -> println("data is valid")
}
}
→ 실행 결과
data is value
데이터를 명시하지 않고 조건만 명시 가능
// when 문을 표현식으로 사용
fun main() {
var data = 10
val result = when {
data <= 0 -> "data is <= 0"
data > 100 -> "data is > 100"
else -> "data is vaild"
}
println(result)
}
반복문 for와 while
for 문
- 제어 변수갑을 증감하면서 특정 조건이 참일 때까지 구문을 반복해서 실행
- 범위 연산자 in 사용
// for~in 반복문
fun main() {
var sum: Int = 0
for (i in 1..10) {
sum += i
}
println(sum)
}
→ 실행결과
55
for (i in 1..10) {...} // 1부터 10까지 1씩 증가
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씩 감소
// 반복 조건에 컬렉션 타입을 사용
fun main() {
var data = arrayOf<Int>(10, 20, 30)
for (i in data.indices) {
print(data[i])
if (i !== data.size - 1) print(",")
}
}
→ 실행 결과
10, 20, 30
// 인덱스와 데이터를 가져오는 withIndex() 함수
fun main() {
var data = arrayOf<Int>(10, 20, 30)
for ((index, value) in data.withIndex()){
print(value)
if (index !== data.size - 1) print(",")
}
}
→ 실행 결과
10, 20, 30
배열의 크기만큼 for 문 반복하게 작성한 소스
indices: 컬렉션 타입의 인덱스 값 의미
→ for 문 반복하면서 0, 1, 2 값을 i에 대입
for 문을 반복하면서 인덱스와 실제 데이터를 함께 가져오려면 withIndex() 함수 이용
// while 반복문
fun mian(args: Array<String>) {
var x = 0
var sum1 = 0
while (x < 10) {
sum += ++x
}
println(sum1)
}
→ 실행 결과
55
while 문
- 조건이 참이면 중괄호 {}로 지정한 영역을 반복해서 실행
728x90
반응형
'Programming Language > Kotlin' 카테고리의 다른 글
클래스를 재사용하는 상속 (0) | 2022.05.20 |
---|---|
클래스와 생성자 (0) | 2022.05.20 |
변수와 함수 (0) | 2022.05.20 |
코틀린 언어 소개 (0) | 2022.05.20 |