본문 바로가기
프로그래밍/C || CPP

[C & C++] if 앞 조건문이 false 경우, 뒷 조건문은 실행할까?

by _BlankSpace 2017. 11. 24.

c 나 cpp 또는 여러 가지 언어로 프로그래밍을 하면서 궁금해볼만한 것을 정리하려고 한다.

이번에 정리할 내용은 간단해서 많은 사람들이 알 수 있지만, 모르는 사람을 위해서 정리한다.

프로그래밍 언어에서 조건문은 굉장히 쉬운 문법 중 하나이다. 그 중, if 문은 입문자도 어렵게 생각하지 않을만한 문법이다.

이러한 if문은 여러 가지 조건을 조합하여 사용할 수 있다.


예를 들면 다음과 같다.

1
if ( 저녁 밥을 먹었다. && 손을 씻었다. || 과제를 했다.)
cs


&& 또는 || 그 외 등등의 조합으로 하나의 if문을 완성할 수 있다.

그런데, 이러한 조건들은 무조건 모두 실행하는 것일까?

궁금하다면 다음을 보자. 간단하게 실험을 해보았다. ( 시간 측정으로 확인을 해보자.)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <time.h>
using namespace std;
 
bool loop1(int num)
{
    for (int i = 0; i < num; i++);
    return true;
}
 
int main(void)
{
    clock_t begin, end;
    begin = clock();
    if (true && loop1(10000000));
    end = clock();
    cout << "수행시간 : " << (double)end - begin << "밀리초, "<< (end-begin)/(double)1000 << "초" << endl; 
 
    return 0;
}
cs


간단한 반복문 코드이다.


15행이 중요한 데, 우리가 실험하려고 하는 것은 앞 조건이 false일 때, 뒷 조건이 실행되느냐이다.

먼저 지금 상태로 실행을 하면 다음과 같은 결과가 나온다.


수행시간 : 41789밀리초, 41.789초


다음으로 15행의 true를 false로 바꾸어 다시 테스트해보겠다. 결과는 다음과 같다.


수행시간 : 41밀리초, 0.041초


엄청난 시간 차이다. 이 말은 무엇을 뜻하는 걸까.

결론적으로는 앞 조건이 false 경우에는 뒷 조건을 실행하지 않는다는 뜻이다.


물론 예외는 있다. &&가 아닌 ||라면 앞 뒤 조건을 무조건 확인하게 될 것이다.


실행시간을 중요하게 생각하는 분야에서는 이러한 사소한 것들이 큰 도움이 될 것으로 생각한다.

많은 도움이 되었으면 좋겠다.



공감 버튼은 저에게 큰 힘이 됩니다. 한번씩 꾸욱 눌러주시면 감사하겠습니다. 또한, 광고도 한번 씩 클릭해주시면 블로그 품질이 올라갑니다!!

댓글