조건문
조건문이란 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다
if문
if 문은 조건식의 결과가 참(true)이면 주어진 명령문을 실행하고 거짓(false)이면 아무것도 실행하지 않는 조건문을 말한다
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fun main() {
val apple = 4
if(apple>5){
println("사과가 5개보다 많습니다");
}
else if (apple>3){
println("사과가 3개보다 많습니다");
}
else {
println("사과가 3개보다 적습니다");
}
}
출력
1
사과가 3개보다 많습니다
이것이 if문에 형태이다 차근차근 뜯어보면
1
2
3
if(apple>5){
println("사과가 5개보다 많습니다")
}
if를 적고 괄호 안에 조건을 적는다 여기서 만약 조건이 참이라면 중괄호에 적은 코드를 실행시킨다
1
2
3
else if (apple>3){
println("사과가 3개보다 많습니다");
}
else if는 if문이 거짓일 때 실행된다 if랑 마찬가지로 괄호 안에 조건을 적고 여기서 만약 조건이 참이라면 중괄호에 적은 코드를 실행 시킨다
앞에서 apple을 4로 선언했으니 해당 조건 참이 되어 중괄호 안 코드인 println(“사과가 3개보다 많습니다”)가 실행되어 “사과가 3개보다 많습니다”라는 문장이 출력되게 된다
1
2
3
else {
println("사과가 3개보다 적습니다")
}
여기서 else는 위에 적은 조건들이 모두 거짓일 때 실행되는 곳이다
참고로 if문은 첫 번째 문장이 참이여서 실행된다면 else if 로 밑에 조건이 참이여도 실행되지 않고 종료된다
논리 연산자
논리 연산자인 &&와 | 를 사용하면 if문에 조건을 추가할 수 있는데 |
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fun main() {
val apple = 4
val banana = 5
if (apple > 5 && banana > 4) {
println("과일이 매우 많습니다")
}
else if (apple > 5 || banana > 4) {
println("과일이 많습니다")
}
else {
println("과일이 적습니다")
}
}
출력
1
과일이 많습니다
차근 차근 코드를 뜯어보자
1
2
3
if (apple > 5 && banana > 4) {
println("과일이 매우 많습니다")
}
우선 apple>5 && banana>4은 apple이 5보다 크다 와 banana가 4보다 크다는 조건을 모두 만족해야만 참이 된다
1
2
3
else if (apple > 5 || banana > 4) {
println("과일이 많습니다")
}
apple>5 || banana>4는 apple이 5보다 크다 와 banana가 4보다 크다는 조건 중 하나만 만족해도 참이 된다 그러니 “과일이 많습니다”라는 문장이 출력 된 것이다
참고로
1
2
3
4
5
6
7
8
9
10
fun main() {
val apple = 3
if (apple > 4)
println("과일이 많습니다")
else
println("과일이 별로 없습니다")
}
위와 같이 괄호 없이도 간추려 사용할 수 있다
변수에 if문 사용
코드
1
2
3
4
5
6
7
8
9
10
11
12
fun main() {
val apple = 3
val box = if (apple>3){
"사과가 많이 들어있음"
}
else {
"사과가 적게 들어있음"
}
println(box)
}
출력
1
사과가 적게 들어있음
위와 같이 변수에 값을 if문을 사용하여 넣는 것이 가능하다
조건문에서 자주 쓰는 조건 연산자
- ㅤ>= : 좌변이 우변보다 같거나 크면 참이 된다
- ㅤ> : 좌변이 우변보다 크면 참이 된다
- ㅤ<= : 좌변이 우변보다 작거나 같으면 참이 된다
- ㅤ< : 좌변이 우변보다 작으면 참이 된다
- ㅤ== : 좌변과 우변이 같으면 참이 된다
- ㅤ!= : 좌변과 우변이 다르면 참이 된다
when문
when문 if문과 같은 조건 제어문으로 if랑 달리 <,>,<=,>=등과 같은 범위를 사용할 수 없고 if문은 조건식이 true일 경우에 실행된다고 하면 when문 비교할 변수가 어떤값을 가지냐에 따라 실행문을 선택되는 방식이다 ==만 사용하는 if이라고 생각하면 편하다
코드
1
2
3
4
5
6
7
8
9
fun main() {
val age = 20
when(age){
in 1..7 -> println("어린이 클럽")
in 8..19 -> println("학생 클럽")
in 20..32 -> println("클럽")
else -> println("나이트 클럽")
}
}
출력
1
클럽
위 코드를 뜯어보면
1
in 1..7 -> println("어린이 클럽")
이 부분은 age에 값이 1~7사이로 들어오면 어린이 클럽을 출력한다는 의미이고 그럼 자연스럽게 밑에 값들도 해당 범위에 값이 들어오면 알맞은 문구를 출력하게 된다는 걸 알 수 있다
또한 is라는 것도 사용할 수 있는데
코드
1
2
3
4
5
6
7
fun main() {
val x : Any = 312.23F
when(x){
is Int -> println("이것은 Int입니다")
!is Int -> println("이것은 Int가 아닙니다")
}
}
출력
1
이것은 Int가 아닙니다
해당 코드를 뜯어보면
1
is Int -> println("이것은 Int입니다")
이 부분은 값이 Int이면 이것은 Int입니다를 출력하고
1
!is Int -> println("이것은 Int가 아닙니다")
이 부분은 값이 Int가 아니면 이것은 Int가 아닙니다를 출력하라는 코드이다