프로그래밍/c언어

사사밍의 c언어기초강좌 5강:코드 살펴보기(세미콜론 편)

사사밍 2016. 3. 28. 23:26


사사밍의 c언어기초강좌 5강:코드 살펴보기(세미콜론 편)


안녕하세요 사사밍입니다.

최근 학업에 지쳐 의지가 부족한저인지라(;) 블로그 글쓰기는 커녕 생각할 엄두도 못내고 있었네요

봐주시는 분도 없을거같고 같은 가벼운 마음으로 방치 하고 있었습니다만 최근 몇몇 댓글이 달리고 봐주시는 분들이 계시구나..

하는 생각이 들더군요 많이는 못올리더라도 강좌 포스트 빈도를 좀 올리기로 했습니다.



저를 쓴 제글 인데 .. 제가봐도 한심한데다 게으른 변명으로 보이네요 ㅋㅋ


././././././.././.


오늘강좌는 세미콜론 편과 return 편으로 나누어집니다.



오늘 내용은 저번 4강에서 살펴보았던 첫번쨰 연습.c 라는(볼품없는) 코드에서 추측만으로는 마저 알기 힘들었던

세미콜론 (;) 과 마지막문장에 삽입되어있던 return 의 의미와 뜻을 간단히 알아보는 시간을 가질려고 합니다.





------------------------------목차-----------------------------


 1.세미콜론(;) 이거 있어야하는건가?(현)


  2.retun 알아보기(다음 강)


--------------------------------------------------------------------------------




1.세미콜론(;) 이거 있어야 하는건가?



저번 강좌에서 사용되었던 코드입니다.

저번 강좌에서는 분명 printf함수의 사용법과 include < >  int main (void) 의 정체들을 살짝 들여보았었죠


그럼 볼것도 없이 우리가 아직 알지못한, 추측만으로는 정체를 알기 힘들었던

printf()함수와 retun 0; 뒤에 붙는 ;(세미콜론) 과 return 에대해서 약간 알아볼려고 합니다.





int main(void)               
{                                
printf("hello c");
return 0; 
}                               




이코드를 보니 특정한 행뒤에 세미콜론(;) 이 붙네요

딱히 중요해보이지는 않는데 ...  일단 떄보고 말할까요?


 

이런식으로 말이죠

어떤 결과가 생길까요? 겉으로 보기에는 큰 문제가 없어 보입니다.



세미콜론(;)의 의미를 알지 못한다면 말이죠



c 언어 에서의 세미콜론 (;) 의 뜻은  "이행(이줄) 을 종결시킨다!,여기서 끝." 정도의 의미를 가지고 있다고 이해하면 될듯합니다.

'개' 와 '가위' 를  '핫도그'와 '핫바' 를 구별하듯이  서로 다른 행들을 구별한다고하면
좀더 연상이 쉽게 되시나요?

(내가 썻지만 비유가 이상한가...?)

예를 들 코드를 하나 작성해볼까요?



처음 보거나 알지못하는 줄들이 많네요.. int.. if..

모른다고 걱정하지 않으셔도 됩니다.  안배웠으니까요 나중에 배우게될 것들입니다만..

예시를 위해 가져왔으니 맘편히 보시면 됩니다.


그래도 이해를 위해 간단히 알아볼까요? (나중에 배울 내용들이므로 어렵게 이해하실려 하실필요는 없습니다 약간의 개념만 이해하면됩니다)


일단if(만약)는 if 뒤에 오는 조건이 만족 했을경우 중괄호{} 안에있는 내용을 실행시켜주나..

조건이 맞지 않을경우 실행되지 않는 까다로운 아입니다.(새침대긴)



if (egg>23)                                              

{                                                               

printf("23개를 어떻게 먹어 ㅡㅡ");

}                                                             



만약 egg가 23개보다 많을경우(egg는 10개로 설정했습니다.)

 printf 함수를 실행시킵니다 정도의 뜻을 가집니다


이말대로라면 이 코드를 실행시킬경우 아무것도 뜨지 않겠죠




이렇게 말이죠  예상대로 아무 결과도 나오지 않네요


그럼 본론으로 돌아가 원래 우리가 알아낼려했던 세미콜론(;)의 정체를 알아내 보겠습니다.


이번에는 위에서 한것과 다르게 세미콜론을 붙여볼까요?


if (egg>23);                                         

{                                                                

printf("23개를 어떻게 먹어 ㅡㅡ");

}                                                              


이런식으로 말이죠 무슨 결과가 일어날까요?

제가 아까 세미콜론에 대해서 알려준 정보로 한번 추측해보세요..


행을 종결.. 종결..

분리.. 분리..

구별.. 구별..

 

어렵나요? 그렇다면 힌트를 하나 드려볼게요


if 문은 중괄호{} 없이도 혼자서 아래 문장을 실행..



이제 한번 답을 알아볼까요? 예상한것과 같다면 굉장한 추리력을 가졌을지도 모르겠네요




어라? egg가 23개 이상 이여야 실행이 된다고했는데? egg10개 라했는데?


물론 egg가 불은건 아닙니다.


세미콜론(;)은 행을 종결 구별하는데 쓴다고 했었죠? 이 코드는 if앞에 세미콜론을 붙였기 떄문에if 와 printf 는 떨어진 문장이 된겁니다.




if (egg>23);

{

}

너따로 나따로


{

printf("23개를 어떻게 먹어 ㅡㅡ");

}



이런 느낌인듯 하네요 if는 처음부터 egg>23개라는 조건만 있고 실행할 문장이 없었으며

printf는 조건이 없으니까 egg가 몇개든 그저 문장을 내보냈을 뿐이였습니다.


그럼 여기서 의문

{

printf("23개를 어떻게 먹어 ㅡㅡ");

}


애 이렇게해도 실행되는 애였어요?



되는 모양입니다....










이렇게 이번 5강도 막을 내립니다.


굉장히 간단한 내용을 이해하기 쉽게 만든다고 여러 예제를 들다보니 글이 길어져버렸네요

오히려 혼란을 주는것이 아닌가 걱정이 되기도합니다.

오늘은 크게 정리할 부분은 없는듯하고..


여러분이 이해하기 어려웠던 부분을 코드를 혼자 지워보고 고쳐보고 뜯어보며 관찰해보세요

오늘 if문이 삽입되있었던 코드는 혼자서 가지고 놀아보면 예습과함께 재밌는 경험이 될겁니다.



혹시 오늘 예제로 든 코드에 if 문은 이해하기 어렵다면 넘어가셔도 좋습니다..(그렇게 어려운 내용은 아니라고 믿습니다만)

못해도 10강안에는 if만을 설명하는 편이 있을겁니다.. 아마 8,9 강 쯤 되지 않을까 예상해봅니다.


다음 강좌는 이번강좌 와 이어지는 코드 살펴보기 return 편이 될겁니다.


아마 한동안은 이렇듯 코드살펴보고 만드는 강좌가 계속 될듯합니다. 이과정은 지루하기보단 오히려 즐겁다고 느낄거라 생각합니다

기대하셔도 좋습니다^^.




2015/11/11 - [프로그래밍/c언어] - c언어 강좌를 시작하기전에


2015/11/13 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 1강:프로그래밍언어란 무엇인가?


2015/11/13 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 2(상)강:c언어란 무엇인가


2015/11/14 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 2강(하):c언어란 무엇인가?


2015/11/24 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 3강:비주얼 스튜디오 설치해보자!


2015/11/27 - [프로그래밍/c언어] - 사사밍의 c언어기초강좌 4강:코드 살펴보기!