Kotlin 문법과 예제 5 - 흐름제어와 논리연산자

강유리·2023년 4월 5일
0

Kotlin

목록 보기
5/10

Kotlin 문법과 예제 5 - 흐름제어와 논리연산자

흐름제어

복잡한 조건에 따라 반복을 제어하고, 분기를 실행해야 하는 경우에 많이 사용

흐름제어에서 사용되는 키워드

  • return : 함수 종료, 값을 반환

  • break : 반복문 내의 구문이 실행되는 중간에 즉시 반복문 종료 후 다음 반복문으로 넘어감

  • continue : 다음 반복 조건으로 즉시 넘어감

break 예제

fun main(){

	for (i in 1..10){

		if(i == 3) break
		print(i)
	}
}

//3에서 반복문이 끝나기 때문에 12 출력

continue 예제

fun main(){

	for (i in 1..10){

		if(i == 3) continue
		print(i)
	}
} //3일때 다음 반복 조건문으로 바로 넘어가기에 3을 제외한 1..10 이 모두 출력됨

다른 언어와 코틀린과의 차이점

기존 언어에서는 다중 반복문 수행 시 내부에 있는 반복문을 break를 통해 종료 하더라고 외부에서 한 번 더 break를 사용해서 수동으로 종료 해야 했지만,

코틀린에서는 외부 반복문에 레이블 이름과 @기호를 달고, break 문에서 @과 레이블 이름을 달아주면 레이블이 달린 반복문을 기준으로 즉시 break를 시켜준다. continue의 경우도 동일하다.

fun main(){

//레이블 이름 -> loop
	loop@for(i in 1..10){
		for(j in 1..10){
			if(i == 1 && j==2) break@loop
			println("i : $i, j : $j")
		}
	}
}
//출력결과
// i : 1, j : 1

논리연산자

  • And 연산자 : && 앞 뒤 모두 true 인 경우 true 출력
  • or 연산자 : || 앞 뒤 중 하나라도 true인 경우 true 출력
  • not 연산자 : ! 뒤에 붙는 값을 반전시켜줌
fun main(){

	println(true && false)
	println(true || false)
	println(!true)
	println(!false)
}

//출력결과
//false
//true
//false
//true

참고자료
디모의 코틀린 강좌

백준

백준 코틀린 2739. 구구단

https://www.acmicpc.net/problem/2739

import java.util.Scanner

fun main(args: Array<String>) = with(Scanner(System.`in`)) {
    val n: Int = nextInt()
    if(n>=1 && n<=9) {
        for (i in 1..9) {
            println("$n * $i = ${i * n}")
        }
    }
}

백준 코틀린 2438. 별 찍기

https://www.acmicpc.net/problem/2438

import java.util.Scanner


    fun main(args: Array<String>) = with(Scanner(System.`in`)) {

            for (i in 1..nextInt()) {
                for(j in 1..i) {
                    print("*")
                }
                print("\n")
            }
        }
        

백준 코틀린 10952. A+B - 5

https://www.acmicpc.net/problem/10952

import java.util.Scanner

   fun main(args: Array<String>) = with(Scanner(System.`in`)) {

       while(true){
           val a:Int = nextInt()
           val b:Int = nextInt()

           if(a==0 && b==0) break

           if(a>0 && b<10){
               println("${a+b}")
           }
       }
   }
profile
리유

0개의 댓글