코틀린
코틀린문법(조건문,반복문)
dev.tkim42
2021. 7. 5. 03:28
조건문
fun main(){
var a = 5
if(a > 10){//조건문 안에 내용이 한줄이라면 중괄호 생략 가능
println("a는 10보다 크다")
} else {
println("a는 10보다 작거나 같다")
}
}
if 문은 참과 거짓을 이용해 프로그램에서 실행할 구문을 나눠주는 역할을 한다.
참과 거짓의 조건은 비교연산을 구할 수 있다.
비교연산자
부등호 : < , <= , > , >=, != , ==
자료형이 맞는지 체크하는 is 연산자 , !is 연산자
a is Int 좌측 변수가 우측 자료형에 호환되는지 여부를 체크하고 형변환까지 한번에 진행시켜준다.
다중 조건문 When : switch문을 좀 더 편리하게 바꾼 기능이다. 하나의 변수를 여러개의 값과 비교할 수 있다.
fun main(){ doWhen(1) doWhen(2) doWhen(Hello) doWhen(12L) doWhen(31) } fun doWhen (a: Any){ // Any 자료형은 어떤 자료형이든 다 호환되는 코틀린의 최상위 자료형이다 when(a){ 1 -> println("정수 1입니다") "Hello" -> println("문자열 입니다") is Long -> println("Long 타입입니다") !is String -> println("String타입이 아닙니다") else -> println("어떤 조건도 만족하지 않습니다") // 어떤 조건값도 만족하지 않을 등호나 부등호의 사용은 불가능 } }
When에서 조건이 맞을때 동작 대신 값을 반환하는 표현식으 바꿔보기
fun main(){
doWhen(1)
doWhen(2)
doWhen("Hello")
doWhen(12L)
doWhen(31)
}
fun doWhen (a: Any){ // Any 자료형은 어떤 자료형이든 다 호환되는 코틀린의 최상위 자료형이다
var result = when(a){
1 -> "정수 1입니다"
"Hello" -> "문자열 입니다"
is Long -> "Long 타입입니다"
!is String -> "String타입이 아닙니다"
else -> "어떤 조건도 만족하지 않습니다" // 어떤 조건값도 만족하지 않을 등호나 부등호의 사용은 불가능
}
println(result)
}
반복문 증감연산자
증감 연산자
- ++ : 값을 1 증가
- ++a : 전위 연산자. 연산자가 포함된 구문에서 이미 증감된 수를 반영하여 연산이 진행
- a++ : 후위 연산자. 증가나 감소된 수를 해당 구문에서 사용하지 않고 다음 구문에서 사용
- -- : 값을 1 감소
조건형 반복문 : 조건이 참인 경우 반복을 유지
- while
fun main(){
var a = 0
while(a < 5){
println(a++)
}
}
do ..while : 조건과 관계없이 반드시 1번은 실행
fun main(){ var a = 0 do { println(a++) }while(a < 5) }
범위형반복문 : 반복 범위를 정해 반복을 수행
for
fun main(){ for(i in 0..9){ // 0~9범위내 반복 print(i) // 0123456789 출력 } for(i in 0..9 step 3){ //i의 증가수 3 print(i) // 0369출력 } for(i in 9 downTo 0){ //감소시 downTo 사용 print(i) //9876543210 출력 } for(i in 'a' .. 'e'){//문자도 가능 print(i) } }
흐름제어 , 논리연산자
return : 함수를 종료하고 값을 반환하는 역할
break : 반복분 내의 구문이 실행되는 중간에 즉시 반복문을 종료하고 다음 구문으로 넘어감
continue : 다음 반복조건으로 즉시 넘어감
코틀린의 추가기능 label
레이블이 달린 반복문을 기준으로 즉시 break시킨다.
fun main(){
loop@for (i in 1..10){
for(j in 1..10){
if(i == 1 && j == 2) break@loop
println("i :$i, j : $j") //따옴표 안에 변수를 출력할 땐 변수명 앞에 $표기
}
}
}
논리연산자
- && 둘다 참인 경우
- || 둘 중 하나라도 참인경우
- ! 참이면 거짓 , 거짓이면 참