반응형
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(++i <= 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문을 빠져나가겠끔 짜봤습니다.
반응형
'공부 > 개발노트' 카테고리의 다른 글
[C/C++] for문 예문(다양한 for문 사용) (0) | 2016.08.17 |
---|---|
[C/C++] while문을 for문으로 바꿔보기 (0) | 2016.08.16 |
[C/C++] 삼항연산자 (0) | 2016.08.16 |
[C/C++] switch/case문 오류 해결 방법(case 안에 변수를 정의했을 때) (0) | 2016.08.16 |
[C/C++] switch/case문을 if문으로 변경해보기 (0) | 2016.08.16 |