쭈쌤
쭈쌤 Hello World

[R] 프로그램 흐름제어(1)-조건문

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[R] 프로그램 흐름제어(1)-조건문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[R] 프로그램 흐름제어(1)-조건문

조건문은 주어진 조건이 참인 경우에만 프로그램 구문을 실행하도록 설정하는 문법 구조를 말합니다. 조건문을 사용하면 프로그램이 선택적으로 실행되도록 할 수 있습니다.

#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
2
3
[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
2
[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
}
▶ 출력결과
1
'선물을 사고 7000 원 남는다.'

4) 논리식을 사용한 조건문

AND (&&) 연산

1
2
3
4
5
6
7
x <- TRUE
y <- TRUE

# AND(&&) 연산은 모든 값이 TRUE인 경우에만 결과가 TRUE
if (x && y) {
    print("주어진 조건은 참 입니다.")
}
▶ 출력결과
1
[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] "주어진 조건은 참 입니다."
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
[1] "헬로월드"

TRUE && FALSE 는 거짓이지만 그 결과를 부정했으므로 결과는 참이된다.

1
2
3
4
5
6
x <- TRUE
y <- FALSE

if ( !(x && y) ) {
    print("주어진 조건은 참 입니다.")
}
▶ 출력결과
1
[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
[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
[1] "C학점"
Rating:

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[R] 프로그램 흐름제어(1)-조건문≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus