언어/기타
2006.10.05 07:01

if문

조회 수 433 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제

if문


프로그램을 만들다 보면


어떤 조건이 만족되면 특정 부분을 실행하고 그렇지 않으면


또다른 특정 부분을 실행해야 하는 등의 구조가 필요할때가 있습니다.


이때는 if문을 사용하면 됨니다.


if문은 어떤 조건이 만족 되면 특정 부분을 실행하는 기능을 합니다.


그럼 자세히 알아보죠.


(1) C언어 에서 참과 거짓


if문을 배우기 전에 한가지 알아 둘 것이 있습니다.


C에서 참과 거짓의 구분을 어떻게 하는지 알아야 하거든요.


저번 관계형 연산자에서 참은 1 거짓은 0을 돌려준다고 했습니다.


그럼 참과 거짓은 1과 0으로만 구분할까요?


그렇지 않습니다.


C에서 0이 아닌 모든 값은 참으로 인식하고,


0만 거짓으로 인식합니다.


지금은 별로 중요하지 않게 보여도 if문에서 정말 중요한 것 입니다.


(2) if문


그럼 이제 if문을 진짜로 공부해 보죠.


if문의 사용법은 가장 기본적인 형태가

if(조건)
{
   /* 하나 이상의 C언어 문장 */
   .
   .
}



이것 입니다.


만약 조건이 만족되면 {}안의 문장들을 실행하는 것이죠.


여기서 조건은 관계형 연사자에 의해 만들어진


조건이어도 되고


참과 거짓을 나타내는 값이어도 됨니다.


즉 조건에 어떤 변수를 넣어도 되는데,


그럴때는 변수가 0이면 거짓으로 인식하고


0이 아니면 참으로 인식합니다.


예제를 보죠.

/* 파일 이름     : C7-1.C
   프로그램 내용 : if문 예제.. */
#include <stdio.h>
void main()
{
   int a=10;
   if(a==10)
   {
      printf("A = 10n");
   }
   if(a)
   {
      printf("A = Truen");
   }
   if(!a)
   {
      printf("A = Falsen");
   }
}



다음 프로그램의 결과는 어떻게 나올까요?


당연히 "A = 10"이라는 문장이 출력되겠죠?


그리고 "A = True"란 문장도 이유는 a가 10이므로


a==10이라는 조건은 참이 됨니다.


그러므로 그 안에 문장을 실행시키게 되는 것이죠.


두번째의 if문에서 a는 0이 아니므로 그것도 역시 참이 됨니다.


하지만 세번째 if문에선 !a라는 조건을 주었는데


!연산자는 NOT연산자로 참을 거짓으로 거짓을 참으로 바꾸는


연산자라고 배워습니다.


a는 참인데 !를 붙이면 거짓이 되므로 그 안에 문장은 실행되지 않죠.


이 예제에서 처럼 {}안에 문장이 하나밖에 없을때는


{}로 묶지 않아도 됨니다. 그러니까

   if(a==10)
      printf("A = 10n");



이렇게 써도 된다는 것이죠.


(3) if-else문


if문은 위와 같이 어떤 조건이 만족되면 특정 부분을 실행합니다.


그런데 그 조건이 만족되지 않을때도 특정 부분을 실행해 줄수는 없을까요?


당연히 할수 있죠. C로는 못하는게 없으니..


그때는 else라는 걸 씁니다.


이때는

if(조건)
{
   /* A부분 */
   .
   .
}
else
{
   /* else부분 */
   .
   .
}



이런 구조를 갖죠.


여기서 조건이 참이면 A부분을 실행하고, 그렇지 않으면


else부분을 실행합니다.


예제를 보죠

/* 파일 이름     : C7-2.C
   프로그램 내용 : if-else 문 예제.. */
#include <stdio.h>
void main()
{
   int a=0;
   if(a)
   {
      printf("Truen");
   }
   else
   {
      printf("Falsen");
   }
}



이 예제에서도 if의 {}안에 문장이 한개이므로


{}를 생략해서

/* 파일 이름     : C7-3.C
   프로그램 내용 : if-else 문 예제.. */
#include <stdio.h>
void main()
{
   int a=0;
   if(a)
      printf("Truen");
   else
      printf("Falsen");
}



이렇게 써도 됨니다.


그럼 이 프로그램의 결과는 어떻게 나올까요?


False가 출력 되겠죠?


이유는 a가 참이 아니므로 그렇게 되는 것이죠.


(4) if-else if-else문


만약 여러 조건별로 실행을 다르게 하려면 어떻게 할까요?


즉 A라는 조건이 만족하면 A부분을 B라는 조건이 만족하면


B부분을....


이렇게 여러가지 조건 별로 말입니다.


이럴땐 else if를 씀니다.


사용법은

if(조건A)
{
   /* A부분 */
   .
   .
}
else if(조건B)
{
   /* B부분 */
   .
   .
}
.
.
else
{
   /* else부분 */
}



이런 식으로 사용하죠.


여기서 조건A가 참이면 A부분을, 조건B가 참이면 B부분을..


이렇게 계속 나가다가, 어떤 조건에도 만족하지 않으면,


else부분을 실행합니다.


이때 else부분은 생략해도 됨니다.


그때는 어떤 조건에도 만족하지 않으면, 아무것도 실행하지 않게


됨니다.


그럼 예제를

/* 파일 이름     : C7-4.C
   프로그램 내용 : if-else if-else문 예제.. */
#include <stdio.h>
void main()
{
   int a=2;
   if(a==1)
      printf("A = 1n");
   else if(a==2)
      printf("A = 2n");
   else if(a==3)
      printf("A = 3n");
   else
      printf("Error!n");
}

이걸 실행하면. 결과는 무엇일까요?


A = 2가 나오겠죠?


왜 그런지는 다 아시죠? 구지 설명할 필요 없는것 같군요.


그럼 예제 하나 더.. 이번엔 else를 생략한 걸로

/* 파일 이름     : C7-5.C
   프로그램 내용 : if-else if문 예제.. */
#include <stdio.h>
void main()
{
   int a=4;
   if(a==1)
      printf("A = 1n");
   else if(a==2)
      printf("A = 2n");
   else if(a==3)
      printf("A = 3n");
}

이거의 실행 결과는 아무것도 출력되지 않습니다..


참이 되는 조건이 없기 때문이죠.


이것으로 if문에 대한 설명은 마치도록 하죠

?

  1. 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법

    Date2018.01.02 CategoryRPG Maker Byzero? Views644
    Read More
  2. [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집

    Date2017.07.14 Category언어/기타 By황금상자 Views702
    Read More
  3. rpg vxa 로 겜만들때 데미지 설정 공식[링크]

    Date2017.06.08 CategoryRPG Maker By준E Views740
    Read More
  4. [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템

    Date2017.03.31 CategoryRPG Maker By준E Views2019
    Read More
  5. JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기

    Date2016.12.24 Category언어/기타 Bytitle: 댓글러lklslel Views851
    Read More
  6. 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요

    Date2016.11.08 Category언어/기타 By마나님이 Views908
    Read More
  7. RPG MV에서 플러그인 오류의 원인에 대하여

    Date2016.07.08 CategoryRPG Maker Bytitle: 댓글러lklslel Views2359
    Read More
  8. RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME)

    Date2016.07.08 CategoryRPG Maker By최저 Views1627
    Read More
  9. 게임의 버전을 짜 보자! - 유의적 버전 2.0.0

    Date2016.06.07 Category언어/기타 ByYanggaeng Views1123
    Read More
  10. 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다!

    Date2016.03.12 CategoryRPG Maker By정궈니 Views2938
    Read More
  11. rpgmv 마우스 지원과 터치 지원이 되니.

    Date2015.10.25 CategoryRPG Maker By팡소리 Views1011
    Read More
  12. RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상.

    Date2015.10.25 CategoryRPG Maker ByHT9MAN Views2246
    Read More
  13. RPG게임 뻔한요소들.

    Date2015.10.05 Category언어/기타 Bytitle: 천무천무 Views1644
    Read More
  14. 자바스크립트와 관련해서 참고할 만한 사이트들

    Date2015.10.04 Category언어/기타 ByMARCO Views921
    Read More
  15. 꿀잼이군요!

    Date2015.05.20 Category언어/기타 By사람님[대회참가] Views873
    Read More
  16. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.06 CategoryRPG Maker Bytitle: 자게이하앵 Views1833
    Read More
  17. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.05 CategoryRPG Maker Bytitle: 자게이하앵 Views748
    Read More
  18. [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계

    Date2015.04.02 Category언어/기타 Bytitle: 천무천무 Views636
    Read More
  19. 오다 주웠습니다.

    Date2015.03.30 Category언어/기타 By사람님[대회참가] Views917
    Read More
  20. 무료 이미지 사이트 Pixabay!

    Date2015.03.28 Category언어/기타 By나작소 Views909
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 51 Next
/ 51


[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)