본문 바로가기
~ 2024.03/C 언어

[C 언어 기초] 선택문

by Monett 2023. 12. 13.
반응형
K.N.King 의 C Programming - A Modern Approach 를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다. 

논리표현식

C에서는 i < j 와 같은 비교식의 결과값은 1 혹은 0인 정수다.
1이면 참을 의미하고, 0은 거짓을 의미한다.
 

관계 연산자

기호의미 (왼쪽이 오른쪽보다)
<작다; 미만
>크다; 초과
<=작거나 같다; 이하
>=크거나 같다; 이상

 
동등 연산자

기호의미 (왼쪽이 오른쪽과)
==같다
!=같지 않다

 

논리 연산자

기호의미
!부정
&&논리곱
||논리합

if 문

if문은 프로그램이 표현식의 값을 사용하여 두 가지 선택지 중 하나를 고르게 만든다.

if (expression) statement

 
if문이 실행되면 괄호 안의 표현식이 평가된다. 만약 표현식의 값이 참(1)이라면 괄호 뒤의 구문이 실행된다.
 

복합문

위의 if문이 여러 구문을 제어하게 만들고 싶다면 복합문 (compound statement)을 사용하면 된다.

{ statements }

여러 개의 구문을 중괄호로 감싸면 컴파일러는 이를 하나의 구문으로 취급한다.

else 절

if문은 else 문을 포함할 수 있다.

if (expression) statement else statement

else 뒤에 나오는 구문은 괄호 안의 표현식이 거짓(0)일 때 실행된다.
else 절도 동일하게 복합문을 사용할 수 있다.

계단식 if문

조건문을 사용할 때 언제나 조건이 한 개일 수는 없다.
이럴 때 "계단식" 으로 if문을 사용하는 것이 좋다.

if (n < 0) {
    printf("n은 0보다 작다\n");
} else if (n == 0) {
    printf("n은 0과 같다\n");
} else {
    printf("n은 0보다 크다\n");
}

조건 표현식

C에선 표현식이 조건의 결과값에 따라 한 개 또는 여러 개의 값을 만들어내는 연산자가 존재한다.
조건 연산자(conditional operator)는 두 가지 기호(? 와 :) 로 구성되어 있다.

expression1 ? expression2 : expression3

이 표현식을 조건표현식 (conditional expression) 또는 삼중연산자 (ternary operator)라고 부른다.
 
expression1 이 참이라면 expression2이고, 거짓이라면 expression3을 실행한다.


switch문

프로그래밍을 할 때 우리는 어떤 표현식을 여러 값과 비교하는 코드를 짜야될 때가 있다.

if (grade == 4) {
    printf("훌륭해요!")
} else if (grade == 3) {
    printf("좋아요!");
} else if (grade == 2) {
    printf("평균이네요!");
} else if (grade == 1) {
    printf("좋지 않아요!");
} else if (grade == 0) {
    printf("좀 더 노력하세요!");
} else {
    printf("잘못된 학점입니다");
}

 
C언어에서는 이런 계단식 if문 대신 switch문을 사용할 수 있다.

switch (grade) {
    case 4:
        printf("훌륭해요!")
        break;
    case 3:
        printf("좋아요!");
        break;
    case 2:
        printf("평균이네요!");
        break;
    case 1:
        printf("좋지 않아요!");
        break;
    case 0:
        printf("좀 더 노력하세요!");
        break;
    default:
        printf("잘못된 학점입니다");
        break;
}

 

반응형

'~ 2024.03 > C 언어' 카테고리의 다른 글

[C 언어 기초] 포인터와 배열  (0) 2023.12.13
[C 언어 기초] 포인터  (0) 2023.12.13
[C 언어 기초] 표현식  (0) 2023.12.13
[C 언어 기초] 서식 입출력  (0) 2023.12.12
[C 언어 기초] C 프로그램의 구조  (0) 2023.12.12