일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 반복문
- spring boot
- react
- swagger
- Sequelize
- Kotlin
- It
- Nest.js
- node.js
- 자바
- props
- vue
- component
- state
- SWIFT
- restful api
- 개발자
- 코틀린
- 상속
- file upload
- 조건문
- class
- javascript
- back-end
- kafka
- Producer
- 개발이 취미인 사람
- AWS
- java
- front-end
- Today
- Total
개발이 취미인 사람
[Kotlin] break & continue와 forEach 사용법 본문
- 지난 시간
안녕하세요. 지난 시간에는 조건문 while & for 기본 사용법에 대해 알아봤습니다.
혹시 놓치고 오신 분들은 아래 링크를 통해 학습하고 오시는 걸 추천드리겠습니다.
- 개요
이번 시간에는 반복문에 사용되는 break & continue와 forEach에 대해 알아보겠습니다.
Break & Continue
다른 언어랑 마찬가지로 break과 continue에 사용 방식은 동일합니다.
break : 반복문 안의 구문이 실행되는 중, break 구문을 만나면 반복문을 빠져나갑니다.
continue : 반복문 안의 구문이 실행되는 중, continue 구문을 만나면 해당 반복문으로 다시 돌아갑니다.
fun mian(){
for (index in 0..10){
if(index == 3) break
println(index)
}
/**
* 실행 결과
*
* 0
* 1
* 2
*/
}
if 조건을 만나 반복문을 빠져나오는 걸 알 수 있습니다.
fun main(){
for (index in 0..5){
if(index == 3) continue
println(index)
}
/**
* 실행 결과
*
* 0
* 1
* 2
* 4
* 5
*/
}
if 조건을 만나 다시 반복문으로 되돌아가 다음 반복문을 수행하는 걸 알 수 있습니다.
for label
코틀린에서는 label이라는 기술을 지원합니다. 우리는 다중 반복문을 사용하게 되면 내부 반복문에도 brack를 선언하고 외부 반복문에도 break를 선언했던 걸 기억하시죠.
자바에서 이렇게 사용했어요.
for (int i = 0; i< 10; i++){
System.out.println("i 반복문");
for (int j = 0; j< 10; j++){
System.out.println("j 반복문");
for (int k = 0; k< 10; k++){
System.out.println("k 반복문");
if(k == 3) {
System.out.println("k == 3");
break;
}
}
break;
}
break;
}
/**
* 실행 결과
*
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* k == 3
*/
하지만 코틀린에서는 label을 사용면 위와 같은 코드를 간결하게 만들 수 있습니다.
fun main(){
kBreak@for(i in 0..3){
println("i 반복문")
for (j in 0..3){
println("j 반복문")
for (k in 0..3){
println("k 반복문")
if(k == 3){
println("조건문 과실행 $k")
break@kBreak
}
}
}
}
}
/**
* 실행 결과
*
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* 조건문 과실행 3
*/
break 해야 할 부분에 @label과 빠져나가야 하는 for 문과 연결해주면 됩니다.
fun main() {
for (i in 0..3){
println("i 반복문")
kBreak@for (j in 0..3){
println("j 반복문")
for (k in 0..3){
println("k 반복문")
if(k == 3){
println("조건문 과실행 $k")
break@kBreak
}
}
}
}
/**
* 실행 결과
*
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* 조건문 과실행 3
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* 조건문 과실행 3
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* 조건문 과실행 3
* i 반복문
* j 반복문
* k 반복문
* k 반복문
* k 반복문
* k 반복문
* 조건문 과실행 3
*/
}
label을 다른 곳에 설정해서 결과가 다른 것을 확인할 수 있습니다.
j 반복문을 빠져나가도 i 반복문을 만나서 결과가 위와 같이 나오는 겁니다. :)
ForEach
forEach는 다른언어와 동일합니다. 하지만 여기서도 label을 사용할 수 있습니다.
기본 사용법
fun main(){
val arrayList = ArrayList<String>()
arrayList.add("개발이 취미인 사람")
arrayList.add("코틀린")
arrayList.add("안드로이드 개발")
arrayList.forEach {
println(it)
}
/**
* 실행 결과
* 개발이 취미인 사람
* 코틀린
* 안드로이드 개발
*/
}
암시적 label선언
fun main(){
val arrayList = ArrayList<String>()
arrayList.add("개발이 취미인 사람")
arrayList.add("코틀린")
arrayList.add("안드로이드 개발")
arrayList.forEach {
if(it == "코틀린") return@forEach
println(it)
}
/**
* 실행 결과
* 개발이 취미인 사람
* 안드로이드 개발
*/
}
명시적 label 선언
fun main() {
val arrayList = ArrayList<String>()
arrayList.add("개발이 취미인 사람")
arrayList.add("코틀린")
arrayList.add("안드로이드 개발")
arrayList.forEach Break@{
if(it == "코틀린") return@Break
println(it)
}
/**
* 실행 결과
* 개발이 취미인 사람
* 안드로이드 개발
*/
}
하나의 forEach문에서는 암시적인 방법으로 간단하게 구현이 가능하지만 중첩 forEach는 명시적 label 방식을 사용합니다.
이번 시간에는 반복문에 사용되는 break & continue와 forEach에 대해 알아보겠습니다. 감사합니다. :)
'언어(Programming Language) > Kotlin' 카테고리의 다른 글
[Kotlin] 함수(Function) 사용법 (0) | 2021.02.17 |
---|---|
[Kotlin] 클래스(Class) 생성자(Constructors) 개념 및 사용법 (1) | 2021.02.16 |
[Kotlin] while & for 기본 사용법 (0) | 2021.02.14 |
[Kotlin] 조건문 If & When 사용법 (0) | 2021.02.14 |
[Kotlin] 자료형, 변수, 상수 개념 및 사용법 (0) | 2021.02.14 |