본 자료는 국립 창원대학교 메카트로닉스 공학부 학생을 대상으로 한 컴퓨터 언어 응용 수업 자료입니다. 본 자료는 수업의 교재인 (핵심요약판) C++로 시작하는 객체지향 프로그래밍 (Y. Daniel Liang 저, 권기형 / 김응성 공역) 의 내용을 재구성한 것으로 수업보조 자료 이외의 목적이 없음을 알립니다.
while 문
반복문은 같은 동작을 여러번 수행하기 위해 준비된 것입니다. 그 중 while문을 살펴보면
위 그림과 같이 while안에 loop-continuation-condition이 참일때 해당 statement를 반복 실행하게 됩니다.
위 예제를 보면 continueLoop이라는 char형 변수에 Y를 저장해두고 while문을 실행합니다. 그 안에서 continueLoop이 계속 Y라면 while문을 계속실행합니다. 내부에서 cin으로 사용자에게 실행여부를 묻는데 그때 사용자가 Y이외의 문자를 입력하면 while문을 마치게 됩니다.
do - while
위에서 배운 while문은 while문 내부의 statement를 실행하기 전에 조건을 선검색을 합니다. 그러나 일단 조건과 관계없이 statement를 한번은 최소한 실행하고서 조건을 검사하게 할 수 있습니다. 그것이 do-while문입니다.
위 그림의 오른쪽 순서도를 보면 알 수 있는데, 먼저 실행하고 조건을 검색하는 것을 볼 수 있습니다.
for 문
아마 모르긴 몰라도 가장 많이 사용하는 반복문이지 않을까 하는데요. 초기값(initial-action)에서부터 조건(loop-continuation-condition)을 만족할때까지, 어떤일(action-after-each-iteration)을 수행하도록 설정합니다. 예를들면,
for (int i=0; i<10; i++)
위에서 처럼입니다. 정수형 i가 0부터 10미만이 즉, 9가 될때까지 1씩 증가하면서 수행하게 됩니다.
예제
반복문으로 while을 쓸건지 do-while, 혹은 for문을 쓸것인지는 사용자의 몫일 겁니다. 위 셋은 약간의 길이의 차이가 있을진 몰라도 분명 서로 변환이 가능합니다. 지금 다룰 예제는 두 정수의 최대공약수를 찾는 프로그램입니다.
<예제코드>
#include <iostream> using namespace std; int main() { // Prompt the user to enter two integers cout << "Enter first integer: "; int n1; cin >> n1; cout << "Enter second integer: "; int n2; cin >> n2; int gcd = 1; int k = 1; while (k <= n1 && k <= n2) { if (n1 % k == 0 && n2 % k == 0) gcd = k; k++; } cout << "The greatest common divisor for " << n1 << " and " << n2 << " is " << gcd; system("pause"); return 0; }
<예제코드처리결과>
참고자료: |
반응형
'Theory > Lecture' 카테고리의 다른 글
[공업수학] 행렬의 대각화 (18) | 2009.10.11 |
---|---|
[C/C++] 함수 Function 上 (4) | 2009.10.10 |
[공업수학] 고유값과 고유벡터, 그리고 직교행렬 (28) | 2009.09.28 |
[공업수학] 역행렬 (Inverse Matrix) (18) | 2009.09.23 |
[공업수학] 행렬식 determinant (4) | 2009.09.14 |
[공업수학] 행렬의 기초 (12) | 2009.09.07 |
[선형변환] 라플라스 변환 (Laplace Transform) (16) | 2009.09.04 |