본문 바로가기
공부/개발노트

[C/C++] while문 사용 예제

반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main(){
    int i = 1;
    int sum = 0;
    
    while(i<=10){
        sum += i;
        
        ++i;
    }
    
    cout << "현재 i의 값 = " << i << endl;
    cout << "1~10 까지의 합계 : " << sum << endl;
    
    return 0;
}
cs

위 소스를 ++i를 while의 조건 부분에 사용해서 소스 최적화를 해보는 작업을 해보았습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main(){
    int i = 0;
    int sum = 0;
    
    while(++<= 10){
        sum += i;
    }
    
    cout << "현재 i의 값 = " << i << "\n";
    cout << "1~10까지의 합 = " << sum << "\n";
    
    return 0
}
cs

18줄의 소스가 2줄 줄어들어 16줄로 간추려졌습니다.
다량의 소스에서는 이렇게 간추려서 소스를 보기 좋게 혹은 짧은 만큼 컴파일 시간도 단축됩니다.

위 두 개의 예제처럼 짧은 소스는 컴파일 속도가 비슷하거나 같지만 긴 소스는 컴파일 속도가 확연히 차이가 나게됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int main(){
    int i = 11;
    int sum = 0;
    
    while(--i){
        sum += i;
    }
    
    cout << "현재 i의 값 = " << i << endl;
    cout << "1~10 까지의 합 = " << sum << endl;
    
    return 0;
}
cs

10부터 1까지 더하는 소스
조건부에 의해 12번째 줄의 결과 값은 0이 됩니다.
13번째 줄 소스는 1~10을 더하는 값과 같은 값을 출력합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
int main(){
    int i = 1;
    int sum = 0;
    
    while(true){
        sum += i;
        
        ++i;
        
        if(i>10)
            break;
    }
    
    cout << "현재 i의 값 = " << i << endl;
    cout << "1~10 까지의 합 = " << sum << endl;
    
    return 0;
}
cs

while문에서도 break;를 사용할 수 있습니다.
if문의 조건이 만족하면 break;로 while문을 빠져나가겠끔 짜봤습니다.


반응형