-
반복문
[학습내용] [학습목표] ▪ for문
▪ while문▪ for문의 기본 문법을 알고 사용할 수 있다.
▪ whlie문의 기본 문법을 알고 사용할 수 있다.for문
1. 기본 문법
기본 문법
▪ 같거나 유사한 코드를 반복적으로 수행할 수 있도록 하는 제어문
▪ 코드를 반복해서 수행해야 할 때 코드를 복사해서 작성하는 대신 반복문을 사용
▪ for문, whlie문을 사용
printf(“Press any key to continue”); // printf(“1”); .. printf(“Press any key to continue”); // printf(“2”); .. printf(“Press any key to continue”); // printf(“3”); .. printf(“Press any key to continue”); // printf(“4”); .. printf(“Press any key to continue”); // printf(“5”); ..
//“*”를 30개 출력
printf(“*”); printf(“**********************************”); for( i=0 ; i<30 ; i++ ) { printf(“*”); }
▪ for문을 구성하는 초기식, 조건식, 증감식, 반복할 문장은 모두 생략할수 있음
예제
▪ 1부터 10까지의 합을 출력하시오.
#include <stdio.h> int main() { int i, sum = 0; for (i=1 ; i<=10 ; i++) sum += I; printf(“1 ~ 10까지 합의 결과는 %d 입니다.", sum); return 0; }
▪ 9부터 1까지 순서대로 출력하는 프로그램을 작성하시오.
#include <stdio.h> int main() { int i; for (i=9 ; i>0 ; i--) printf(“ %d ", i); return 0; }
▪ 1부터 50까지 홀수와 짝수를 구분하여 출력하는 프로그램을 작성하시오.
#include <stdio.h> int main() { int i,j; printf(“ 홀수 짝수 ”); for (i=1, j=2 ; i<50 ; i+=2, j+=2) printf(“ %d %d ”, i, j); return 0; }
▪ 구구단을 출력하는 프로그램을 작성하시오.
#include <stdio.h> int main() { int i, j; for (i=2 ; i<10 ; i++) { printf(“\n\n %d 단\n”); for (j=1 ; j<10 ; j++) printf(“%d x %d = %d\n", i, j, i*j); } return 0; }
while문
1. while문
기본 문법
for과 while
▪ for를 while로 변경할 때는 while문 앞에 초기식을 쓰고 while 블록 안쪽의 맨 끝에 증감식을 씀
for문 whlie문 for ( 초기식 ; 조건식 ; 증감식 )
{
문장 ;
}초기식 ;
while ( 조건식 ; )
{
문장 ;
증감식 ;
}//“*”를 30개 출력
for( i=0 ; i<30 ; i++ ) { printf(“*”); } i=0; while(i<30) { printf(“*”); i++; }
예제
▪ 1부터 10까지의 합을 출력하시오.
#include <stdio.h> int main() { int i,sum=0; i = 1; while (i <= 10) { sum += i; i++; } printf(“1~10까지 합의 결과는 %d입니다.”, sum); return 0; }
▪ 1부터 입력한 정수(n)까지의 홀수의 합과 짝수의 합을 출력하시오.
#include <stdio.h> int main() { int i, n, sum_odd=0, sum_even=0; scanf(“%d”, &n); i = 1; while (i <= n) { if(i%2) sum_even += i; else sum_odd += i; i++; } printf(“1~%d까지의홀수합: %d 짝수합 : %d 입니다.", n, sum_odd, sum_even); return 0; }
2. do ~ whlie문
기본 문법
예제
▪ 0이 입력될 때까지 계속 수행되는 프로그램으로 0이 아닌 정수값(n)에 대해 3으로 나머지 연산한 결과를 출력하시오.
#include <stdio.h> int main() { int n; scanf(“%d”,&n); while (n!=0) { printf(“%d % 3 = %d \n”, n, n%3 ); scanf(“%d”,&n); } return 0; }
#include <stdio.h> int main() { int n; do { scanf(“%d”,&n); if (!n) printf(“%d % 3 = %d \n”, n, n%3); } while (n!=0); return 0; }
3. 분기문
기본 문법
▪ break : 블록을 탈출하는 명령어
▪ continue : 반복문의 시작으로 분기
예제
▪ 1부터 입력한 정수값(n)까지 5의 배수가 아닌 값을 출력하시오.
#include <stdio.h> int main() { int i, n; scanf(“%d”,&n); for(i=1 ; i<=n i++) if (i%5 == 0 ) continue; printf(“ %d “, i); return 0; }
▪ 입력 받은 두 정수의 합을 출력하는 프로그램을 작성하시오. 단 첫 번째 입력한 값이 0이면 프로그램을 종료하시오.
#include <stdio.h> int main() { int a, b; while (1) { scanf(“%d %d”, &a,&b); if(!a) break; printf(“%d + %d = %d \n", a, b, a+b); } return 0; }
평가하기
Q1. for문에 관한 설명으로 옳지 않은 것은 무엇인가?
① for문은 증감식에 의해 값의 변경이 있다.
② 조건식이 참이면 반복문을 수행한다.
③ 초기값은 반드시 초기값 항에 기술해야 한다.
④ 증감식을 기술하지 않으면 무한 루프에 빠질 수 있다.for문은 초기값을 기술하나 반드시 초기값 항에 기술해야 하는 것은 아닙니다.
Q2. 다음 중 무한 반복문이 아닌 것은 무엇인가?
① for( ; ;)
② while(1)
③ while( )
④ for( ; ; i++)whlie문의 조건식에 1은 참의 논리이므로 무한 반복이 이루어집니다.
Q3. for를 이용하여 반복문을 구현했을 때, 반복문 수행 중 continue;가 수행되면 어디로 분기가 이루어지는가?
① 조건식
② 초기식
③ 증감식
④ for 블록 탈출
continue문은 증감식으로 분기합니다.
학습정리
1. for문
• 초기식, 조건식, 증감식으로 구성되며, 조건이 참인 동안 문장을 반복 수행함
• 필요에 따라 중첩하여 for문을 사용할 수 있음
• 무한 루프를 위해 for( ; ; )와 같은 문을 사용할 수 있음
2. while문
• while : 조건식이 참인 동안 문장을 반복 수행함
• do-while : 조건식이 참인 동안 문장을 반복 수행하며, 문장을 한 번 이상 수행할 필요가 있는 경우 유용함
• break : 현재 수행 중인 반복문을 빠져나감
• continue : 반복문의 시작 부분으로 분기함
• goto : 레이블이 지정한 위치로 이동함
'Blog > JAVA기반 스마트웹 개발2021' 카테고리의 다른 글
프로그래밍 언어 활용 part 1 - 변수의 스코프 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 함수 (0) 2021.07.26 프로그래밍 언어 활용 part 1 - 조건문 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 연산자 (0) 2021.07.25 프로그래밍 언어 활용 part 1 - 변수와 데이터형 (0) 2021.07.25 댓글