C <5>. 반복문(1), 단항 연산자

# 오늘의 주제

  • for문 
  • while문 
  • 단항 연산자 

다섯 번째 시간입니다.^^

지난 번에는 실수 표현방법을 알아보았습니다.
깨알같지만 은근 자주 쓰이고 중요한 녀석일겁니다 ㅎㅎㅎ

자 그럼 잔소리는 이제 생략하고 오늘은 반복문을 살짝 보도록 하겠습니다^^
일단 반복문의 종류는 for, while, do while등등 몇가지가 있는데 오늘은 for문과 while문 두 가지를 해 볼게요 ㅎㅎ
반복문은 세 번에 걸쳐서 포스팅 할 예정입니다. 물론 연달아 하지는 않습니다^^

조건문도 두 번에 할거예요 ㅎㅎㅎ
스따뚜!!!

반복문이란?

반복문은 말 그대로 반복문입니다.
어느 조건이 충족이 된다면 계속 계속 끝까지 돕니다 ㅋㅋㅋ
심지어 어느 조건이 계속 충족되지 않는다면 멈추지 않습니다.
설명은 끗!

자, 일단 새로운 프로젝트를 생성해 봅시다.


오해하시는 분들이 가끔 계신데, 꼭 Xcode 사용하실 필요 전혀 없습니다 ㅎㅎㅎ
그냥 제가 사용하는 툴이기 때문에 이거 쓰는거구요, Visual Studio를 쓰던지, TurboC를 쓰던지 아무 상관없습니다.ㅎㅎ

for 구문

자, 메인함수 안에 이렇게 작성을 해 줍니다.

 
일단 처음에 선언해준 i는 반복문에서 어떤 조건을 만들어 주기 위해서는 유동적인 변수가 필요하기 때문에 하나 만들어 준거예요.ㅎ
일단 i를 선언해 준 후, 쭈욱 작성해 봅시다.
for문의 작성요령은 이렇습니다.

for ( 변수 초기화 ; 조건 ; 한바퀴 후 진행할 작업) 
{
   반복문 동안 실행될 내용...
}


<p>자 이런식으로 작성을 합니다.
세미콜론 양옆으로 세 개의 무언가가 들어가죠?
사실 전부 다 작성하지 않아도 무관합니다.
하지만, 작성하지 않는다면 설정된 조건이 없기 때문에 반복문이 무한정으로 돌거예요 ㅎㅎㅎ

첫 번째 변수 초기화는 <code>for</code>문이 처음 시작하는 때 한 번만 실행됩니다.
즉, <code>i=0</code>이라는 것을 넣었을 때 이것은 딱 <code>for</code>문 처음 들어왔을때만 0으로 초기화 된다는 말이예요 ㅎ

그리고 두 번째 조건은 <code>for</code>문이 실행될 조건을 명시하는거예요. <code>i < 5</code>라고 작성하였으면 <code>i</code>가 <code>5</code>보다 작으면 이 <code>for</code>문을 실행하여라 라고 말하는 것이죠.

세 번째 한바퀴 후 진행할 작업은 말 그대로 <code>for</code>문이 실행될 내용들을 쭈욱 실행 한 후 다시 조건을 검사하기 전에 진행할 작업을 말합니다.

다시 정리해보면

코드에서 <code>for</code>문을 똻!!!!!!!!!! 마주쳤다!!!!!! 그럼 컴퓨터가 동작하는 순서는

변수 초기화 - 조건 체크 - 반복문 내용 실행 - 한바퀴 후 진행작업 진행 - 조건 체크 - (조건이 충족되면)반복문 내용 실행 - 한바퀴 후 진행 작업 - 조건체크 - (조건이 충족되지 않으면)<code>for</code>문 탈출

이해되시나요?

뭐 말은 필요없죠...ㅋㅋ 코드를 실행해 봅시다.
</p>
<img alt="" filename="4.png" src="https://blog.yagom.net/wp-content/uploads/tistory/20381F4E4EDF17CB2B.png"/>
<p>
자... 코드는 각자 다 다른데 실행 결과는 똑같죠?ㅎ
코드 작성법은 다 자기 스타일 입니다 ㅎㅎ
자... 그런데 여기서 의문이 하나 생기셔야 할텐데요...ㅋㅋㅋ
음... 맞춰볼까요?
<code>i++</code>은 뭐고 <code>++i</code>는 뭐지??? 그리고 <code>i++</code>이 <code>printf</code>안에 들어가 있는데 이건 도대체 뭐지?ㅋㅋㅋ

자... 요 밑에 설명해드릴게요-</p>
<h2>while 구문</h2>
<img alt="" filename="5.png" src="https://blog.yagom.net/wp-content/uploads/tistory/1616213B4EDF185212.png"/>
<p>
자, <code>while</code>문입니다.
 
<code>while</code>문의 작성법은</p>
<pre><code class="language-c">while ( 조건 )
{
    실행될 내용....
}</code>

요렇게 작성하시면 됩니다.

훨씬 간편하죠?ㅎㅎㅎ
간편한 만큼 불편한 점도 존재하죠^^
for문과 while문과 둘 중 하나 자신이 더 편한거 골라서 사용하시면 되겠습니다 ㅎㅎㅎ
물론 나중에 또 다른 반복문도 있어요 ㅎ

while의 동작과정을 보면

while을 똻!!!!!!!!!!!만나면!!!!!!!!!!

조건체크 - 실행 - 조건체크 - 실행 - 조건 안맞으면 탈출!!

뭐 이런 식입니다 ㅎㅎㅎ

자, 코드 작성하고 다 돌려 보셨나요? 그럼 이제 궁금증을 좀 풀어보는 시간을 가져볼까요?
사실 요 밑에꺼 안보고는 위에 코드 이해 못하실거예요...ㅎㅎ 대충 눈치 채신 분들도 계시겠지만요 ㅎ

자 그럼 내려가 봅시다-

단항 연산자

자, 뜬금없이 단항 연산자가 무엇이냐?

단항. 즉 항이 하나인 연산자 입니다.
실생활에선 없죠?ㅎ

실생활에선 이항연산자가 거의 대부분이니깐요 ^^
C에선 심지어 3항 연산자도 있어요 ㅎㅎㅎ
고거는 조건문 할때 같이 해드릴게요. 혹시 빼먹으면 말씀해주세요 ㅎㅎㅎ

위에서 썼던 i++은 단항연산자 입니다.
이항 연산자는 우리가 흔히 아는 +, -, *, / 등이예요. 이것은 필히 항이 두개가 필요하죠. 1+2 처럼 말예요.

다시 돌아와서 단항연산자는 두 가지가 있습니다. 변수의 앞에 붙는 것과 뒤에 붙는 것.
++i처럼 앞에 붙게되면, ++i가 속한 그 한 줄을 시작하기 전에 i1을 더해줍니다.
반대로 i++처럼 뒤에 붙게되면 i++이 속한 그 한줄을 끝낸 후 i1을 더해줍니다.
이해되시나요?

--ii--도 마찬가지 입니다.

자, 이렇게 설명을 해 드리면 코드가 조금씩 감이 오실까요?ㅎ

만약에 한 줄에 아무것도 작성하지 않고 i++;이라고 작성해도 i1이 더해지는 효과를 봅니다.
반대로 ++i;해도 결과는 똑같죠. 왜냐면 그 한 줄에서 i++이나 ++i가 처음이자 마지막이니까요 ㅎ
즉, i=i+1을 귀찮게 안하려고 요런식으로 표현하기도 합니다. 또 i=i+1을  i+=1이라고 표현하기도 합니다.
i=i-1i-=1이라고도 표현하구요...ㅎㅎ

궁금한 점이 있으시면 언제든지 질문 주세요! ^^

by yagom


p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.
RSS Feed 받기   

댓글 남기기

Close