6. 흐름제어와 논리연산자

Yes. Dominos~·2021년 8월 29일
0

디모의 코틀린

목록 보기
6/10
post-thumbnail

5번 포스트인 반복문에서 반복문을 사용하게 되면,
중간에 그만하고 나와야 될때도 있고,
나올때 값을 반환해야 될때도 있고,
여러 상황들이 생길수 있다.



  • 그래서 반복문 내에서 코드의 흐름을 제어하는 키워드가 있는데
  1. break = 즉시 반복문 종료.
  2. Continue = 다음 반복문으로 바로 넘어감. (건너 뛴다.)

어떻게 동작하는지 확인해보자.

break : 반복문 즉시 종료

fun main() {
    for(i in 1..10){
        if(i==3) break // if(i==3) break : 일때 다음코드를 실행시키지 않고 종료된다.
        print(i)
    }
}
// [결과]
1 2

Continue : 반복문 도중 해당부분은 건너뜀

fun main() {
    for(i in 1..10){
        if(i==3) continue // if(i==3) continue : 코드를 건너 뛴다.
        print(i)
    }
}
// [결과]
1 2 4 5 6 7 8 9 10


  • label 지정
    다중 반복문에서 break, continue가 적용되는 반복문을 label을 통해 지정가능
    label이 달린 반복문을 기준으로 특정 행동을 할 수 있다.

고전적인 언어에서는

fun main() {
    for(i in 1..10){
        for(j in 1..10){
            if(i==2 && j==2) break
        }
        if(i == 2 && j == 2) break
    }
}

반복문에서 완전히 빠져나오기 위해서 2번 break 체크를 해줘야 나올수 있다.

코틀린에서는

fun main() {
    loop@for(i in 1..10){
        for(j in 1..10){
            if(i==2 && j==2) break@loop
				println("i:$i, j:$j") 
				// $를 쓰면 문자열 안에 변수값 포맷팅가능
        }
    }
}
// i==2이고 j==2일 경우 loop반복문 break
// [결과]
i:1, j:1
i:1, j:2
i:1, j:3
i:1, j:4
i:1, j:5
i:1, j:6
i:1, j:7
i:1, j:8
i:1, j:9
i:1, j:10
i:2, j:1

break 를 두번 적을 필요 없이, 1번의 break@label 포인트로 빠져 나올 수 있다.
j:2 인 순간 빠져나오는 것

  • label이 달린 반복문을 기준으로 즉시 break가 실행된다.
  • label의 이름은 loop 뿐만 아니라 임의로 지정가능하다.


  • 논리연산자
    조건을 합쳐 판단 해야함.
  1. && : AND
    => (조건A) && (조건B) : 조건A,B 둘다 true 여야 조건 통과

  2. || : OR
    =>(조건A) || (조건B) : 조건A,B 둘중 1개라도 true 면 통과

  3. ! : NOT
    => !(조건A) : 조건A 값을 반전 시킨다.

fun main() {
    println(true && false)
    println(true || false)
    println(!true)
    println(!false)
}
// [결과]
false
true
false
true
profile
미래의 아들아~ 곧 만나러 갈게

0개의 댓글

관련 채용 정보