YSHUSH

제어문(if, for, switch, while) 본문

Coding/Kotlin

제어문(if, for, switch, while)

코딩; 2022. 1. 24. 16:57

if

자바의 if문

String str = "";
int num = 50;

if(num > 30){
    str = "abc";
}else{
    str = "bcd";
}

코틀린의 if문

var num:Int = 50
val str = if(num > 30){ "abc" }else{ "bcd" }
println("$str")
var num:Int = 50
var str:String = ""
if(num > 30){
    str = "abc"
}else{
    str = "bcd"
}
println("$str")

 

삼항연산자

자바

int num = 50;
String str = (num > 30) ? "abc":"bcd";

코틀린에는 없다 → 대신 if문을 한줄로 적는다.

var num:Int = 30
var str = if(num > 30) "abc" else "bcd"
println("$str")

 

is

val num = 123
if(num is Int){ // 상수 num이 Int일 경우
    println("정수입니다")
}else if(num !is Int) {  // 상수 num이 Int가 아닐경우
    println("정수가 아닙니다")
}

 

&&, || = and, or

자바와는 달리 ()로 감싸주어야 한다

if((num > 0) && (num < 300)){
    println("num는 30보다 작다")
}

if((num > 0) and (num < 300)){
    println("num는 30보다 작다")
}

if((num > 0) || (num < 300)){
    println("num는 300보다 작다")
}

if((num > 0) or (num < 300)){
    println("num는 300보다 작다")
}

 

if문을 사용한 학점 매기기

val score = 93.5

val grade = if(score >= 90) {
    'A'
}else if((score >= 80) && (score < 90)){
    'B'
}else if((score >= 70) && (score < 80)){
    'C'
}else{
    'D'
}
println("score:$score grade:$grade")
val grade = if(score >= 90) {
    'A'
}else if(score in 80.0..89.9){  // 80.0 <= score <= 89.9
    'B'
}else if(score in 70.0..79.9){
    'C'
}else{
    'D'
}
println("score:$score grade:$grade")

 

Switch문

자바

코틀린에서 사용불가

String s = ""
int num = 3
switch(num){
    case 0:
        s = "abc"
        break;
    case 2:
        s = "bcd"
        break;
    default:
        s = "xyz"
}

코틀린

val a:Int = 3
val s = when(a){
    0 -> "abc"
    1, 2 -> "bcd"
    else -> "xyz"
}
println("$s")

 

when

when을 사용한 범위 계산

val score = 85.0
var grade:Char = 'F'

when(score) {
    in 90.0..100.0 -> grade = 'A'
    in 80.0..89.9 -> grade = 'B'
    in 70.0..79.9 -> grade = 'C'
    !in 70.0..100.0 -> grade = 'F'
}
println("score: $score grade: $grade")
val score = 85.0
var grade:Char = 'F'
when{
    score >= 90.0 -> grade = 'A'
    score in 80.0..89.9 -> grade = 'B'
    score in 70.0..79.9 -> grade = 'C'
    score < 70.0 -> grade = 'F'
    }
println("score:$score grade:$grade")

 

1부터 100까지 출력

for(i in 0 until 100){
    println(i)
}

for(i in 99 downTo 0){			// 역순으로 출력
    println(i)
}

for(i in 1..100){
    println(i)
}

for(i in 0 until 100 step 2){	// 0부터 100까지 2의 배수만 출력
    println(i)
}

 

while과 do...while문

var w:Int = 0
while(w < 10){
    println("w:$w")
    w++
}

w = 0
do{
    w++
    println("w:$w")
}while(w < 10)

 

continue, break

for (i in 1..5){
    if(i == 3) break		// 결과값 = 1, 2
    println(i)
}					

for(i in 1..5){
    if(i == 4) continue		// 결과값 = 1, 2, 3, 5
    println(i)
}

'Coding > Kotlin' 카테고리의 다른 글

함수  (0) 2022.01.25
Exception  (0) 2022.01.25
미니게임(Random Number 찾기)  (0) 2022.01.24
배열  (0) 2022.01.24
변수와 상수  (0) 2022.01.24