Peter Ahn
Peter의 우아한 프로그래밍
Peter Ahn
전체 방문자
오늘
어제
  • 전체 (115)
    • 영어공부 (15)
    • 물생활 (9)
    • 독서 (2)
    • 일상 (1)
    • IT 소식 (15)
      • 최신 기술 소식 (10)
      • 보안 소식 (5)
    • 인공지능 (AI) (2)
    • OS (19)
      • Linux (19)
    • Web (0)
      • Vue.js (0)
    • 객체지향 (1)
      • 개념과 원리 (1)
      • 디자인패턴 (0)
    • 프로그래밍 (37)
      • C (14)
      • C++ (3)
      • C# (1)
      • Python (3)
      • Javascript (2)
      • Bash (4)
      • Vim (9)
    • Database (3)
      • DB2 (3)
      • MongoDB (0)
    • 프레임워크 (1)
      • Ionic (1)
    • Cloud (1)
      • AWS (1)
    • 3D Printer (2)
    • 기록보관소 (5)
    • 초대장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • 프로그래밍의 세계에 오신 것을 환영합니다.

인기 글

태그

  • 영어 표현
  • 구피어항
  • bash
  • 하프블랙구피
  • 랜섬웨어
  • C언어
  • 쉘 프로그래밍
  • c강좌
  • 영어 회화
  • Linux
  • vim 비주얼모드
  • 4차 산업혁명
  • vim
  • 딥러닝
  • C++
  • 리눅스
  • 인공지능
  • bash shell
  • AI
  • 생활영어
  • 물생활
  • 구피
  • 프로그래밍
  • 리눅스 명령어
  • C언어 강좌
  • call by reference
  • 영어표현
  • vim 강좌
  • 어항
  • typescript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Peter Ahn

Peter의 우아한 프로그래밍

[C언어 강좌-8] 조건문 (IF, SWITCH)
프로그래밍/C

[C언어 강좌-8] 조건문 (IF, SWITCH)

2018. 4. 12. 16:10
반응형


안녕하세요 피터입니다.

오늘은 C언어의 조건문에 대해 알려드리겠습니다.


주어진 조건에 따라 분기한다고 해서 분기문이라고도 하는데요, 아래와 같이 크게 세가지 종류가 있습니다.

  • If / Else
  • Switch / Case
  • ? operator

동작 원리는 거의 같지만 가독성이나 코드의 유연성을 고려하여 상황에 따라 적절하게 사용하시면 됩니다.


1. If / Else

if 구문의 기본적인 문법은 다음과 같습니다.

if(condition)
  statement;

위 코드를 "만일(if) 조건이 만족하면 statement를 실행하시오." 라고 이해하시면 됩니다.

조건이 만족하는 기준은 condition이 참(true)가 되는 경우입니다.
C언어에서 조건문의 참(true)은 0이 아닌 모든 수가 해당되며,
반대가 되는 거짓(false)는 0입니다.

따라서 if(1) 은 참이 되고, if(100)도 참이 됩니다.
오로지 if(0)인 경우에만 해당 statement가 실행되지 않습니다.
의미를 분명하게 하기 위해 아래와 같이 상수로 정의하여 사용하기도 합니다.

#define TRUE  1
#define FALSE 0

if(TRUE)
  statement;


그렇지만 일반적으로 condition에 들어가는 구문은 아래와 같이 비교 구문이 대부분입니다.
else 구문은 if(condition)이 만족하지 못하는 모든 경우에 실행됩니다.
if(age >= 19)

   printf("You are adult\n");
else
printf("You are minor\n");


분기해야 할 조건이 여러개인 경우에는 아래와 같이 else if 구문을 사용할 수 있습니다.


if(type == 1)
  printf("Text type\n");
else if(type == 2)
  printf("Image type\n");
else if(type == 3)
  printf("Video type\n");
else
  printf("nvalid type\n");


2. Switch / Case

Switch-Case 구문의 기본 문법은 아래와 같습니다.

switch(variable)
{
  case value1:
    statement;
    break;
case value2: statement; break;
 default: statement; }

swich 구문에서 분기에 사용할 변수(variable)를 설정한 뒤 case 구문에서 각 value에 대한 루틴을 설정하면 분기합니다.

주의하셔야 할 부분은 case 구문에서 break; 구문인데요. break 를 쓰지 않으면 밑에 있는 case 구문까지 실행이 되어버리니 의도하지 않은 결과가 나올 수 있습니다.

아래 예제는 위의 if-else 구문으로 되어 있는 코드를 switch-case 구문으로 변환한 코드입니다. 참고해주세요~

switch(type)
{
  case 1:
    printf("Text type\n");
    break;
  case 2:
    printf("Image type\n");
    break;
  case 3:
    printf("Video type\n");
    break;
  default:
    printf("Invalid type\n");
}


3. ? operator

? (물음표) 연산자는 3개의 항이 요구되기 때문에 "삼항연산자" 라고도 불리며, 조건식을 수행하기 때문에 "조건부연산자" 라고도 합니다.

좀 더 단순하게 활용이 가능한데요. 기본 문법은 다음과 같습니다.

(condition)?a:b;

boolean 값을 갖는 조건식(condition) 뒤에 ? 연산자가 오고 그 뒤에 A:B 와 같이 콜론(:)으로 구분되는 값이 2개 오게 됩니다.

조건식의 결과가 참(True)인 경우 연산의 결과가 a 가 되구요, 거짓(False)인 경우 b가 되게 됩니다.

아래 예제와 같이 활용하면 코드를 좀 더 단순화 할 수 있습니다.

printf("%s\n", (age>=19)?"Adult":"Minor");


여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.

-Peter의 우아한 프로그래밍


반응형
저작자표시 비영리 동일조건 (새창열림)

'프로그래밍 > C' 카테고리의 다른 글

[C언어 강좌-10] 배열 (Array)  (0) 2018.05.11
[C언어 강좌-9] 반복문 (Loop)  (0) 2018.05.04
[C언어 강좌-7] 연산자 (Operator)  (0) 2017.02.27
[C언어 강좌-6] 기억 영역 분류 (Storage Class: auto, register, static, extern)  (1) 2017.02.25
[C언어 강좌-5] 상수 (Constant)  (0) 2017.01.26
    '프로그래밍/C' 카테고리의 다른 글
    • [C언어 강좌-10] 배열 (Array)
    • [C언어 강좌-9] 반복문 (Loop)
    • [C언어 강좌-7] 연산자 (Operator)
    • [C언어 강좌-6] 기억 영역 분류 (Storage Class: auto, register, static, extern)
    Peter Ahn
    Peter Ahn
    IT 정보 공유, 프로그래밍 지식 공유

    티스토리툴바