본문 바로가기

C++

C++ 배우기 4(반복문 / 논리연산자 / 증감연산자)

티스토리 안에 코드블럭이라는 기능을 오늘이 돼서야 알게 됐다.... 좀 더 일찍 알았더라면;;

처음 블로그를 해보는 거라 많이 미숙한 것 같다...ㅠㅠ


반복분 While

while(조건문)
{

}

반복문 중 하나인 while에 대해서 알아보자. 영어 그대로는 ~하는 동안의 뜻으로, 조건이 참인 동안 계속 반복한다.

하지만 조건이 거짓이 될 때 while을 빠져나와 반복이 종료가 된다.

만약 조건이 계속 참(true) 일 경우에는 무한루프가 되어버리니 주의하도록 하자.

 

번외로 비교연산자를 사용할 때, while( input != answer ) 과 while( !(input == answer) )는 'input과 answer 변수가

같지 않을 때'라는 같은 뜻이니 헷갈리지 않도록 하자.


논리연산자

저번에 배웠듯이 논리연산자 중, &&과 ||에 대해 알아보자.

&& (and) : 우리말로 그리고라는 뜻으로 and로도 표기하여 사용할 수 있다.

&&를 and로 바꿔써도 된다

우선 논리연산자가 나타내는 결괏값은 bool과 같아 1(true), 0(false)밖에 없다.

그렇다면 어떻게 논리연산자가 결괏값을 나타낼까?

위 사진의 if문 안의 조건을 한번 보면 (5 > 3)은 참이므로 1이 되고, (3 > 7)은 거짓으로 0이 된다.

그러면 if( 1 && 0 )이 된다고 할 수 있다. 그런데 여기서 &&연산자는 양쪽 모두 참이어야 1의 값을 내보내는데,

하나가 0(false)이므로 최종 결과는 0(false)이 된다.

 

&&의 연산 방식은 이렇다.

true and true -> 1
true and flase -> 0
false and true -> 0
false and false -> 0

 

|| (or) : 우리말로 또는 이라는 뜻으로 or로도 표기하여 사용할 수 있다.

{"originWidth":393,"originHeight":26,"style":"alignLeft","caption":"

위의 사진을 보면 (5 > 3)은 1(true), (3 > 7)은 0(false)이므로, (1 || 0)이라 볼 수 있다.

하지만 여기서 &&(and)와 다르게 ||(or)은 둘 중 하나만 참이면 결괏값도 1(true)을 나타낸다.

 

||의 연산 방식은 이렇다.

true and true -> 1
true and flase -> 1
false and true -> 1
false and false -> 0

 

이렇게 증감연산자를 사용하면 더 세분화된 조건문을 만들 수 있게 된다.


증감연산자

증감연산자에는 전위증감연산자, 후위증감연산자가 있다. ++ 혹은 --를 사용하여 1씩 더하거나 빼는 역할을 한다.

그런데 여기서 중요한 것은 전위와 후위에 따라 연산되는 방식이 다른 것이다.

 

전위증감연산자( ++count  / --count)

앞에 부호가 붙어있는 것을 말하는데, 이는 값이 먼저 변환되고 출력이 되는 순서이다.

int count = 5;
cout << --count << endl;
cout << count << endl;

위와 같이 사용하면 결괏값은 4 4가 나오게 된다.

 

후위증감연산자(count++ / count --)

뒤에 부호가 붙어있는 것을 말하며, 출력이 먼저 되고 그 뒤에 값이 변환되는 순서이다.

int count = 5;
cout << count++ << endl;
cout << count << endl;

따라서 결괏값은 5 6이 나오게 된다.

 

증감연산자는 반복문에서 좀 더 편리하게 사용할 수 있다.