9. for 문
특수형태의 while문
9
조건
F
T
B E
A
D
for( A ; 조건 ; D )
{
B ;
C ;
}
E ;
C
A: 조건 바로 윗 문장
D: 반복되는 부분의 맨 끝 문장
10. for 문
1부터 100사이의 짝수 더하기
10
Start
Var i, sum
Stop
i 100
sum
F
T
sum <- 0
i <- 2
i <- i + 2
sum <- sum + i
int i, sum ;
sum = 0 ;
i = 2 ;
while( i <= 100 ) {
sum = sum + i ;
i =+ 2 ;
}
printf( “%dn”, sum ) ;
int i, sum ;
sum = 0 ;
for( i = 2 ; i <= 100 ; i =+ 2) {
sum = sum + i ;
}
printf( “%dn”, sum ) ;
11. 11
for 문
for statement Syntax
for ( expr1; expr2; expr3 )
{
statement ;
...
}
next statement ;
expr1;
while (expr2)
{
statement ;
...
expr3;
}
next statement ;
12. for 문
Read 10 numbers and sum up those
int i, n ;
sum= 0 ;
i= 0 ;
while ( i< 10) {
scanf( “%d”, &n ) ;
sum += n ;
i++ ;
}
printf( “%dn”, sum ) ;
12
int i, n ;
sum = 0 ;
for( i = 0 ; i < 10 ; i++ )
{
scanf( “%d”, &n ) ;
sum += n ;
}
printf( “%dn”, sum ) ;
13. for 문
Read 10 numbers and sum up those
int i, n ;
sum= 0 ;
i = 0 ;
while ( i< 10) {
scanf( “%d”, &n ) ;
sum += n ;
i++ ;
}
printf( “%dn”, sum ) ;
13
int i, n ;
i= 0 ;
for( sum = 0 ; i < 10 ; sum+=n)
{
scanf( “%d”, &n ) ;
i++ ;
}
printf( “%dn”, sum ) ;
int i, n ;
i= 0 ;
sum = 0 ;
while ( i< 10) {
scanf( “%d”, &n ) ;
i++ ;
sum += n ;
}
printf( “%dn”, sum ) ;
int i, n ;
sum = 0 ;
for( i = 0 ; i < 10 ; i++ )
{
scanf( “%d”, &n ) ;
sum += n ;
}
printf( “%dn”, sum ) ;
14. 14
for 문
Counting up from 0 to n-1
Counting up from 1 to n
Counting up from n-1 to 0
Counting up from n to 1
for ( i = 0; i < n; i++ ) A;
for ( i = 1; i <= n; i++ ) A;
for ( i = n -1; i >= 0; i-- ) A;
for ( i = n; i > 0; i-- ) A;
15. break 문
break
– break문을 감싸는 루프에서 빠져 나온다.
15
while(A) {
B;
while(C) {
D;
if( E ) break;
F;
}
G;
if( H ) break ;
I ;
}
J;
16. continue 문
continue
– continue를 감싸는 루프의 시작점(조건확인)으로 올라간다.
16
while(A) {
B;
while(C) {
D;
if( E ) continue;
F;
}
G;
if( H ) continue ;
I;
}
J;
18. 합이 7이 되는 양의 정수 3개의 리스트를 출력하시오.
Example
#include <stdio.h>
int main(void)
{
int i, j, k ;
for ( i = 0; i <= 7; ++i )
{
for( j = 0; j <= 7; ++j )
{
for ( k = 0; k <= 7; ++k )
{
if ( i + j + k == 7 )
printf( "%d %d %dn", i, j, k );
}
}
}
return 0;
}
0 0 7
0 1 6
0 2 5
0 3 4
…
5 0 2
5 1 1
…
6 1 0
7 0 0
18
19. Example 1
Add all integers between 1 and 100
19
Start
Var i, sum
Stop
i 100
sum
F
T
i <- 1
sum <- 0
i <- i + 1
sum <- sum + i
#include <stdio.h>
int main() {
int i, sum ;
i = 0 ;
sum = 0 ;
while( i <= 100 )
{
sum = sum + i ;
i = i + 1 ;
}
printf( “%d”, sum ) ;
return 0;
}
20. Example 1-1
Add all integers between 1 and 100
20
Start
Var i, sum
Stop
sum
i <- 1
sum <- 0
i <- i + 1
sum <- sum + i
#include <stdio.h>
int main() {
int i, sum ;
i = 0 ;
sum = 0 ;
while( i <= 100 )
{
sum = sum + i ;
i = i + 1 ;
}
printf( “%d”, sum ) ;
return 0;
}
i 100
21. Example 2
Add all even integers between 1 and 100
21
Start
Var i, sum
Stop
sum
i <- 1, sum <- 0
i <- i + 1
sum <- sum + i
i is even ?
T
F
#include <stdio.h>
int main() {
int i, sum ;
i = 0 ;
sum = 0 ;
while( i <= 100 )
{
if( i % 2 == 0 )
{
sum = sum + i ;
}
i = i + 1 ;
}
printf( “%d”, sum ) ;
return 0;
}
i 100
22. Example 3
Find the largest n such that 1+2+…+n<1000
22
Start
Var n, sum
Stop
sum < 1000
n-1F
T
n <- 1, sum <- 0
n <- n + 1
sum <- sum + n
#include <stdio.h>
#include <math.h>
int main() {
int n, sum ;
n = 1 ;
sum = 0 ;
while( 1)
{
sum = sum + n ;
if( sum < 1000) break ;
n = n + 1 ;
}
printf( “%d”, n-2 ) ;
return 0;
}
23. Example 3-1
Find the largest n such that 1+2+…+n<1000
23
#include <stdio.h>
#include <math.h>
int main() {
int n, sum ;
n = 1 ;
sum = 0 ;
sum = sum + n ;
while( sum < 1000 )
{
n = n + 1 ;
sum = sum + n ;
}
printf( “%d”, n-2 ) ;
return 0;
}
Start
Var n, sum
Stop
n-1
n <- 1, sum <- 0
n <- n + 1
sum <- sum + n
sum <- sum + n
sum < 1000
24. Example 4
(1+1+…+1)+ … + (10+10+…+10)
24
Start
Var a, b, sum
a = 1, sum = 0
sum
b = b + 1
sum = sum+ a
Stop
#include <stdio.h>
#include <math.h>
int main()
{
int a, b;
a = 1 ;
while( a <= 10 )
{
b = 1 ;
while( b <= 10 )
{
sum = sum + a ;
b = b + 1 ;
}
a = a + 1 ;
}
return 0;
}
a 10
b 10
b <- 1
a = a + 1
25. Example 5
(2*1+2*2+…+2*9)+ … + (9*1+9*2+…+9*9)
25
Start
Var a, b, sum
a = 2, sum = 0
sum
b = b + 1
sum = sum+ a * b
Stop
#include <stdio.h>
#include <math.h>
int main()
{
int a, b;
a = 2 ;
while( a <= 9 )
{
b = 1 ;
while( b <= 9 )
{
sum = sum + a*b ;
b = b + 1 ;
}
a = a + 1 ;
}
return 0;
}
a 9
b 9
b <- 1
a = a + 1
26. Example 6
1+(1+2)+(1+2+3)+......+(1+....+10)
26
Start
Var n, a,
sum
Stop
sum
n <- 1, sum <- 0
n <- n + 1
sum <- sum + a
#include <stdio.h>
#include <math.h>
int main()
{
int n, a, sum ;
n = 1 ;
a = 1 ;
sum = 0 ;
while( n <= 10 )
{
a = 1 ;
while( a <= n )
{
sum = sum + a ;
a = a + 1 ;
}
n = n + 1 ;
}
printf( “%d”, sum ) ;
return 0;
}
n 10
a <- 1
a n
a <- a + 1