• 검색 결과가 없습니다.

반복문: while, for (1)

N/A
N/A
Protected

Academic year: 2022

Share "반복문: while, for (1)"

Copied!
19
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

반복문: while, for (1)

Chan-Su Shin

(2)

반복문

while 문

for 문

do-while 문

while ( expr ) { statements;

}

next statement;

for (expr1; expr2; expr3) { statements;

}

next statement;

(3)

while 문

while ( expr ) { statements;

}

next statement;

1. expr 가 참인 거짓인지 판별한다.

2. 참이면 statements들을 하나씩 수행한 후에 1번으로 돌아가 반복한다.

3. 거짓이면 next statement부터 수행한다.

(4)

예제 (1 – while 문)

1부터 10까지 더한 값을 출력 int k = 1, sum = 0;

while ( k <= 10 ) {

sum = sum + k;

k = k + 1;

}

printf(“ k = %d, sum = %d\n”, k, sum);

sum += k;

k++;

(5)

예제 (2 – while 문)

n!을 계산하여 출력

int k = 1, factorial = 1;

while ( k <= n ) {

factorial *= k;

k++;

}

printf(“%d\n”, factorial);

int k = 1, factorial = 1;

while ( k++ <= n ) { factorial *= k;

}

printf(“%d\n”, factorial);

int factorial = 1;

while ( n > 0 ) {

factorial *= n--;

}

printf(“%d\n”, factorial);

(6)

예제 (3 – while 문)

입력되는 문자들 중에서 알파벳 소문자와 대문자의 개수를 출력 int l_count = 0, s_count = 0

char c;

while ( ( c = getchar( ) ) != EOF ) { // EOF은 <enter><ctrl+Z><enter>

if ( ‘a’ <= c && c <= ‘z’ ) s_count++;

if ( ‘A’ <= c && c <= ‘Z’ ) l_count++;

printf(“Large = %d, Small = %d\n”, l_count, s_count);

}

printf(“Final: Large = %d, Small = %d\n”, l_count, s_count);

(7)

예제 (3 – while 문, getch, getchar, getche)

문자를 입력 받는 세 가지 함수들

buffer 사용

입력한 data가 프로그램 수행 시

사용되는 시점

enter key 인식

문자 입력시 화면에 반환 여부

(echo)

헤더파일

getchar() "enter" key 입력 후 ‘\n' stdio.h

getch() 문자 입력 즉시 '\r' conio.h

getche() 문자 입력 즉시 '\r' conio.h

putch(c), putchar(c) 함수는 문자 c를 출력하는 함수들

(8)

예제 (4 – while 문)

주의할 점

int k = 3;

while ( k-- ) {

printf(“%d\n”, k);

}

printf(“outside \n”);

int k = 3;

while ( k++ ) {

printf(“%d\n”, k);

}

printf(“outside \n”);

(9)

for 문

1. expr1을 수행한다.

2. expr2 가 참인지 거짓인지 판별한다.

3. 참이면

1. statements을 수행하고 2. expr3을 수행한 후에 3. 2번으로 돌아간다.

4. 거짓이면

1. next statements를 수행한다.

for (expr1; expr2; expr3) { statements;

}

next statement;

int k, sum = 0;

for ( k = 1; k <= 10; k++ ) { sum = sum + k;

}

printf(“sum = %d\n”, sum);

(10)

for 문

(1) (2) (4)

for ( 초기값 지정 수식; 반복 조건식; 증감식 ) {

반복할 내용(3) }

계속 수행할 내용;

(11)

for 문 vs. while 문

for (expr1; expr2; expr3) { statements;

}

next statement;

expr1;

while ( expr2 ) { statements;

expr3;

}

next statement;

(12)

for 문 vs. while 문

int k, sum = 0;

for ( k = 1; k <= 10; k++ ) { sum = sum + k;

}

printf(“sum = %d\n”, sum);

int k, sum = 0;

k = 1;

while ( k <= 10 ) {

sum = sum + k;

k++;

}

printf(“sum = %d\n”, sum);

expr1은 for 문의 제어 변수를 초기화하는 역할

expr2는 for 문의 반복, 탈출여부를 판단하는 역할

expr3는 for 문의 제어 변수를 변화시키는 역할

(13)

예제 (for 문)

int k, sum = 0;

k = 1;

for ( ; k <= 10; k++ ) { sum = sum + k;

}

printf(“%d\n”, sum);

int k, sum = 0;

k = 1;

for ( ; k <= 10; ) {

sum = sum + k;

k++;

}

printf(“%d\n”, sum);

(14)

예제 (for 문)

int k, sum = 0;

k = 1;

for ( ; ; ) {

sum = sum + k;

k++;

}

printf(“%d\n”, sum);

expr2가 생략되면 무조건 참으로 판별한다.

(15)

예제2 (for 문)

int k, sum = 0;

for (k=1; k <= n; k++) { if( k%3 == 0 )

sum = sum + k*k;

}

printf(“%d\n”, sum);

1부터 n 사이의 수 중에서 3의 배수의 제곱의 합을 출력하라.

int k, sum = 0;

for (k=0; k <= n; k=k+3) {

sum = sum + k*k;

}

printf(“%d\n”, sum);

(16)

다함께~ (while/for 문)

// while 문 사용

자연수 n이 소수인지를 판별하여 그 결과를 출력하라.

// for 문 사용

(17)

다함께2 (while/for 문)

두 수 A와 B가 주어져 있을 때, A와 B의 최대공약수를 출력하라.

유클리디(Eulcid) 호제법

(18)

다함께2 (while/for 문)

두 수 A와 B가 주어져 있을 때, A와 B의 최대공약수를 출력하라.

유클리디(Eulcid) 호제법

// while 문 사용 // for 문 사용

(19)

for문과 while문을 중첩하여 반복하기

int i, j, k, a = 0, b = 0, c = 0;

for (i=1; i <= 3; i+=2) { a++;

for (j=1; j <= 4; j+=2) { b++;

} }

printf(“%d, %d, %d\n”, a, b, c);

for문(while문) 내부에 다른 for문(while문)이 올 수도 있다!

사실, 반복문 내부에 반복문이 계속해서 중첩해서 올 수 있다.

i의 값에 따라 j의 값의 변화를 추적해보자.

참조

관련 문서

따라서 바르게

나는 우리 집에 많은 로봇을 가지고 있어.. 나는 애완동물 두

개념원리 중학수학을 통해 개념과 원리를 정확히 이해하고 문제를 통해 체험하므로 개념과 원리를 확실히 이해하게 됩 니다.. 그 다음 단계는 개념원리 익힘책인 RPM을 통해

1-(06/23) Introduction: Micro- and nano-optics based on diffraction effect for next generation technologies 2-(06/30) Guided-mode resonance (GMR) effect for filtering devices

[r]

즉 사각형 ABCD가

③ 분자가 반응하기 위해서는 반드시 충돌이 필요하며 그 충돌은 분자가 활성화에너지 이상 의 에너지를 갖고 화학적 반응에 필요한 방향이 알맞을 때 반응을 일으킬

따라서 계산