츄잉~ chuing~
츄잉 신고센터 | 패치노트 | 다크모드
공지&이벤트 | 건의공간 | 로고신청N | HELIX
로그인유지
회원가입  |  분실찾기  |  회원가입규칙안내
[C언어] 6.C언어 기초(4)
팟독 | L:0/A:0
214/450
LV22 | Exp.47% | 경험치획득안내[필독]
추천 1-0 | 조회 3,535 | 작성일 2014-09-26 06:32:00
[서브캐릭구경OFF] [캐릭컬렉션구경OFF] [N작품구경OFF]
*서브/컬렉션 공개설정은 서브구매관리[클릭]에서 캐릭공개설정에서 결정할수 있습니다.
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.

[C언어] 6.C언어 기초(4)

  

이번 게시글에선 C언어 제어문이라는 것에 대해 적으려합니다.

그 제어문 중에서도 조건문만 할 생각입니다. 그 중에서도 if라는 명령어에 대해서만 할 생각입니다.

 

조건문은 어떤 조건이 참인지 거짓인지 판명합니다.

예를들면 변수 A는 1보다 큰가? 변수 B는 1보다 작은가? 뭐 이런거죠.

 

조건문에서는 if 와 else 라는 명령어를 사용하는데 이거 2개만으로 조건문은 끝난다라고 보시면 됩니다.

 

조건문의 종류에는 if , if~else , 다중(중첩) if , else ~ if가 있습니다.

조건문은 사용할 때에 if나 else다음에 실행문이 한 줄밖에 없다면 {} 생략이 가능합니다. (저의 경우에는 소스코드가 길어질꺼같으면 한줄밖에 없더라도 {}를 넣어서 보기편하게 만드는 편입니다.}

 

4가지 중 첫번째인 if는 조건이 참일 때만 명령을 실행시켜줍니다.

 

if(조건문)

{

    실행문;

}

위와 같이 사용하시면 되고, 소스코드로 예를 들어보면

void main(){

    int a;

    scanf("%d",&a);

    {

     if(a<5)

        {

            printf("a<5");

        }

    }

라고 코딩을 하면 a가 5미만일경우에는 실행문에 해당하는 게 출력되는 겁니다. 위의 소스코드에서 실행문은 printf("a<5");이니 입력받은 a가 5미만이라면 a<5라는 문구가 출력되겠네요.

 

if ~ else는 참과 거짓 둘 다 명령을 실행시킵니다.

 

if(조건문)

{

    실행문;

}

else

{

    실행문;

}

으로 사용하시면 됩니다. 

 

예로 소스코드를 하나보면,

void main()

{

    int a;

    scanf("%d",&a);

    if(a<5)

    {

        printf("a<5");

    }

    else

    {   

        printf("a>=5")

    }

}

라고 소스코드를 했을 때, 조건이 참 그러니 입력받은 a가 5미만 이라면 a<5 라는 문구가 출력이 될것이고, 조건이 거짓, 그러니 입력받은 a가 5이상이라면 a>=5 라는 문구가 출력이 될 것입니다.

 

 

다중(중첩) if는 if안에 if를 하나 더 사용하는겁니다. 그럼으로써 더욱 세부적인 조건이 가능해지죠.

*어떤 책에서는 다중 if라고도 하고 어떤 책에서는 중첩 if라고도 합니다.

else안에 if를 사용할 수도있습니다

 

if(조건문)

{

    if(조건문)

        {

            실행문

        }

    else

        {

            실행문

         }

}

else

{

    실행문;

}

 

이런식으로 사용합니다. 

 

소스코드 예

void main()

{

    int a;

    scanf("%d",&a);

    if(a>0){

        if(a>5){

            printf("a>5");

                  }

        else{

            printf("0<a<=5");

        }

    }

    else

    {

        printf("a<0")

    }       

 

라고 소스코드를 작성하면 a가 0보다 클 경우 if안에 있는 if문으로 들어가게되고, 여기서 a가 5보다 클 경우 a>5라는 문구가 출력이 됩니다. a가 5보다 작을 경우 0<a<=5라는 문구가 출력이 되고, a가 0보다 작으면 2번째 if문으로 들어가지않고 a<0이라는 문구가 출력이 됩니다.

 

else if문과 다중 if문은 매우 비슷합니다. 다중 if에서의 if를 if문 안에 넣지않고 else문에 넣은것과 같습니다.

 

사용 방법은

if(조건문)

{

    실행문

}

else if(조건문)

{

    실행문

}

else

{

    실행문

}

인데요. 왜 else안에 if를 넣은것과 같은지 설명해드리겠습니다. 

if (조건문)

{

실행문

}

else

{

    if(조건문)

    {

        실행문

    }

    else

    {

        실행문

    }

}

의 방식과 else if문 사용방법에 적은 방식의 결과는 같습니다.

 

실제로 같은지 코딩한번 해보면서 증명해봅시다.

 

위의 소스코드는 a로 입력된 값이 5초과라면 a>5 5라면 a>4 4라면 a>3이나오고 3이라면 a>2 2라면 a>1이 출력됩니다. 만약 a가 1이하일경우에는 a가 출력이 되구요.

저 소스코드에서 2라고 값을 넣으면 a>1이라는게 출력이 되는데요.

 

저 소스코드를 else안에 if문을 넣어서 만들어서 비교 보겠습니다.

 

 ==

 

왼쪽의 소스코드가 else if문을 풀어서 코딩한 소스코드입니다. 오른쪽 소스코드에 비해 매우깁니다.

*양 쪽다 {}를 생략할 수 있을 때는 생략하면서 만들었습니다.

 

허나 위와 마찬가지로 결과 창에서 2를 입력하면 

결과는 같게 나옵니다. 

 

 

같은 결과가 나오는데 굳이 소스코드를 길게 쓸 필요가 없겠죠.

물론 프로그래머가 귀찮아서 길게 쓸 필요가 없기도 하겠지만 이게 소스코드의 가독성을 좋게하기 위해서이기도 합니다.

 

 

 

프로그래밍의 가독성이라는 말이 나와서, 프로그래밍의 가독성에 대해 약간 설명해드리겠습니다.

과거의 프로그래밍 그러니 한 20년~30년전쯤(프로그래머 1세대)에서는 소스코드가 길수록 용량이 크다보니 그만큼 디버깅하는시간과, 컴파일하는 시간이 길어져서 가능한 소스코드를 줄여서 만들자라는게 통상적이였다고 합니다. 그러다보니 그 소스코드를 짠 프로그래머가 아니면 그 소스코드를 해석하는데 시간이 너무 오래걸리는거죠. 과거 프로그래밍 자체가 현재에 비해 매우 어렵고, 배우기도 힘들다보니 과거 프로그래머는 매우 고급인력이였고,대부분 혼자서 일을 처리하는 경우가 많았다고 합니다. 거의 혼자서 일처리를 하다보니 자신이 익숙한 변수를 사용해도 되고 별 관계가 없죠.

(컴퓨터자체가 느리다보니 컴파일 한번하는데 3시간씩 걸리고, 그 당시 컴퓨터가 매우 비쌌기 때문에 대부분 학생이 컴퓨터가 없었다고 합니다. 그래서 컴퓨터가 없는 경우에는 대학교등에서 대신 컴파일을 해주는데 하루에 한번 밖에 안됬다고 합니다. 실수로 오타하나가 나버리면 3시간을 날려먹기도 하고 하루를 날려먹기도하고 그러다보니 눈으로 오타잡는거에 매우 능통해있다고 합니다.)

 

현재의 프로그래머는 과거와는 달리 거의 팀프로젝트로 무언가를 만들어내는 작업을 많이 합니다. 그리고 과거와 달리 컴퓨터가 매우 빨라져 컴파일 한번하는데 아무리 길어도 몇십분내에 다 되죠.

그러다보니 현재의 프로그래밍 소스코드는 혼자 보는게 아니라 다른 사람도 같이 보는 경우가 많고, 다른사람이 하던걸 이어받아서 하는 경우도 많습니다.

그래서 현재의 소스코드는 조금 길어도 다른 사람이 보기좋게 만들어두는거죠.

예를 들면 변수등을 a나 b처럼 사용하지않고 sum이나 avg같이 영어의 약자 혹은 member등 영어의 철자등으로 사용하고, 뒤에 // 주석을 많이 달고 다른 명령어 사이는 엔터로 띄워서 보기좋게 만들고, {}를 사용할때 엔터를 사용하여 다음줄에 실행문을 적거나 하는거죠.

(실제로 몇몇 구문은 엔터를 치지않고 적어도 그러니까 일자로 쭉 적어도 실행이 됩니다.)

 

 

마지막으로 조건문을 이해하시기 좋은 예제를 몇개 적어드리겠습니다.

 

1.영어 알파벳을 입력(scanf등으로)받아 이 알파벳이 소문자인지 대문자인지 출력.

 

2.BMI지수 계산하기(BMI 지수 계산법 = 체중(kg)/키(m)x키(m)

결과: BMI 지수 ? , 체질량 지수 ? (만약 과체중이라면 위험체중인지 비만 ?단계도 같이 출력 예) 과체중 비만1단계입니다.)

 

BMI 지수

저체중 = 18.5미만

정상체중 = 18.5 이상 22.99 이하

과체중 = 23이상

-위험체중 23~24.99

-비만 1단계 25~29.99

-비만 2단계 30이상

-비만 3단계 40이상

 

 

개추
|
추천
1
반대 0
신고
    
  [숨덕모드 설정] 숨덕모드는 게시판 최상단에 위치해 있으며 언제든 설정할 수 있습니다.
현실
조건문 잘보고 가요~
2014-09-26 11:34:17
추천0
[L:42/A:188]
물트라
도움을 많이 받고 있습니다. 감사합니다.
2014-09-28 00:03:58
추천0
샹크스¸
잘보고가요.
2015-02-08 22:43:42
추천0
의견(코멘트)을 작성하실 수 없습니다. 이유: 로그인을 하시면 댓글작성이 가능합니다. 츄잉은 가입시 개인정보를 전혀 받지 않습니다.
  
즐겨찾기추가   [게시판운영원칙] | [숨덕모드 설정] |   게시판경험치 : 글 10 | 댓글 1
번호| | 제목 |글쓴이 |등록일 |추천 |조회
36 이전게시물  
[작가탐구] 베르나르 베르베르 [22]
팟독
2014-10-19 1-0 5155
35 별처럼빛나는  
[리니지] 남들보다 조금은 특별했던 나의 리니지 여정기 제 3편 [21]
2014-10-16 4-0 4380
34 별처럼빛나는  
[리니지] 남들보다 조금은 특별했던 나의 리니지 여정기 제 2편 [16]
2014-10-07 6-0 4669
33 이전게시물  
[C언어] 7.C언어 기초(4.5) [11]
팟독
2014-10-04 0-0 7461
32 이전게시물  
두번째 사랑방손님 : 러브★콤(BGM) [8]
네티
2014-10-03 2-0 9178
31 미연시나리뷰  
1.체인지! 그녀가되어 킁킁 날름날름(ちぇ~んじ! ~あの娘になってクンクンペロペロ~) [55]
은룡
2014-10-02 5-1 109606
이전게시물  
[C언어] 6.C언어 기초(4) [3]
팟독
2014-09-26 1-0 3535
29 일어일문탐구  
일본 지역 - 토호쿠 지방 [26]
종이
2014-09-25 1-0 7027
28 일어일문탐구  
[일본문화] 일본 지폐속의 인물을 알아보자 [21]
종이
2014-09-22 4-0 5612
27 별처럼빛나는  
[리니지] 남들보다 조금은 특별했던 나의 리니지 여정기 제 1편 [14]
2014-09-22 3-0 4567
      
<<
<
11
12
13
14
enFree
공지&이벤트 | 접속문제 | 건의사항 | 로고신청 | 이미지신고 | 작품건의 | 캐릭건의 | 기타디비 | 게시판신청 | 클론신고 | 정지/패널티문의 | HELIX
Copyright CHUING Communications. All rights reserved. Mail to chuinghelp@gmail.com | 개인정보취급방침 | 게시물삭제요청