R 흐름제어(1) If
ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪R 흐름제어(1) If≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.
조건문은 주어진 조건이 참인 경우에만 프로그램 구문을 실행하도록 설정하는 문법 구조를 말합니다. 조건문을 사용하면 프로그램이 선택적으로 실행되도록 할 수 있습니다.
#01.if 문
주어진 조건이 참인 경우에만 수행되는 문법적 표현.
1
2
3
if (조건식) {
... 조건이 참인 경우에 수행될 명령들 ...
}
1) 논리값을 사용한 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
# 일반 구문
print("배고픈데")
# 조건문에서 사용할 조건값 생성
have_money <- TRUE
#have_money <- FALSE
if (have_money) {
print("식당에서")
}
# 일반 구문
print("밥을 먹자")
출력결과 [1] “배고픈데” [1] “식당에서” [1] “밥을 먹자”
2) 숫자형 값을 사용한 경우
1
2
3
4
5
6
7
8
9
10
# 숫자형 변수에 대한 조건 처리
# -> 숫자형인 경우 0은 거짓, 0이 아닌 모든 수는 참
money <- 10000L
#money <- 0
if (money) {
print("택시를 타고")
}
print("집에가자")
출력결과 [1] “택시를 타고” [1] “집에가자”
3) 비교식을 사용한 조건문
1
2
3
4
5
6
7
8
9
10
money <- 12000
# () 안의 식이 참인 경우 {} 안의 구문이 실행된다.
# -> money가 5000 이상인 경우
if (money >= 5000) {
k <- money-5000
# 조건값들을 공백을 기준으로 하나의 값으로 연결하는 함수.
s <- paste("선물을 사고", k, "원 남는다.")
s
}
출력결과 ‘선물을 사고 7000 원 남는다.’
4) 논리식을 사용한 조건문
AND (&&) 연산
1
2
3
4
5
6
7
x <- TRUE
y <- TRUE
# AND(&&) 연산은 모든 값이 TRUE인 경우에만 결과가 TRUE
if (x && y) {
print("주어진 조건은 참 입니다.")
}
출력결과 [1] “주어진 조건은 참 입니다.”
1
2
3
4
5
6
7
8
x <- TRUE
y <- FALSE
# AND(&&) 연산은 하나라도 거짓이 포함되어 있다면 결과가 거짓이므로
# 아래의 조건문은 실행되지 않는다.
if (x && y) {
print("주어진 조건은 참 입니다.")
}
OR (||) 연산
1
2
3
4
5
6
7
8
x <- TRUE
y <- FALSE
# OR(||) 연산은 하나라도 참이 포함되어 있다면 결과가 참이므로
# 아래의 조건문은 실행된다.
if (x || y) {
print("주어진 조건은 참 입니다.")
}
출력결과 [1] “주어진 조건은 참 입니다.”
1
2
3
4
5
6
7
x <- FALSE
y <- FALSE
# OR(||) 연산은 모든 값이 거짓인 경우에만 결과가 거짓이 되므로 아래의 조건문은 실행되지 않는다.
if (x || y) {
print("주어진 조건은 참 입니다.")
}
NOT(!) 연산
!
연산자는 논리값을 부정한다.
아래 구문의 조건은 참을 부정하여 거짓이 되었으므로 실행되지 않는다.
1
2
3
4
5
a <- TRUE
if (!a) {
print("Hello World")
}
아래 구문의 조건은 거짓을 부정하여 참이 되었으므로 실행된다.
1
2
3
4
5
b <- FALSE
if (!b) {
print("헬로월드")
}
출력결과 [1] “헬로월드”
TRUE && FALSE 는 거짓이지만 그 결과를 부정했으므로 결과는 참이된다.
1
2
3
4
5
6
x <- TRUE
y <- FALSE
if ( !(x && y) ) {
print("주어진 조건은 참 입니다.")
}
출력결과 [1] “주어진 조건은 참 입니다.”
TRUE || FALSE
는 참이지만 그 결과를 부정했으므로 결과는 거짓이된다.
1
2
3
4
5
6
x <- TRUE
y <- FALSE
if ( !(x || y) ) {
print("주어진 조건은 참 입니다.")
}
#02.if ~ else 문
그렇지 않으면~~
- if문은 조건이 참인 경우에만 수행되고 조건이 거짓인 경우는 수행되지 않는다.
- if문 뒤에 else문을 덧붙여 조건이 거짓인 경우에 수행되는 구문을 추가할 수 있다.
- else문은 if문 뒤에만 위치할 수 있고 독립적으로는 존재할 수 없다.
1
2
3
4
5
6
7
age <- 19
if (age > 19) {
print("성인입니다.")
} else {
print("성인이 아닙니다.")
}
출력결과 [1] “성인이 아닙니다.”
#03.if ~ else if ~ else 문
- 여러가지 경우의 수를 나열함
- 순차적으로 조건을 판별하면서 가장 처음 만나는
참
인 조건의 블록을 수행하고 빠져나감
1
2
3
4
5
6
7
8
9
10
11
12
13
point <- 72
if (point > 90) {
print("A학점")
} else if (point > 80) {
print("B학점")
} else if (point > 70) {
print("C학점")
} else if (point > 60) {
print("D학점")
} else {
print("F학점")
}
출력결과 [1] “C학점”
ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪R 흐름제어(1) If≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.