반응형
- 반복문
- 반복 구조 : 어떤 조건이 만족될 때까지 루프를 도는 구조
- 반복문의 종류 : while(do_while), for 문이 있다.
- while문
while(반복 조건)
{
반복문장
}
반복문은 무한 루프 문제가 발생할 수 있기에
반복이 종료되는지 확인해야 한다.
- if문과 while문의 차이점
if문은 조건이 만족되면 1회만 실행되나, while문은 여러 번 시행한다.
EX) 최대 공약수 찾기 (유클리드 호제법)
#include <stdio.h>
int main(void)
{
int x, y, r;
printf("두 개의 정수를 입력하시오(큰수, 작은수): ");
scanf_s("%d%d", &x, &y);
while (y != 0)
{
r = x % y;
x = y;
y = r;
}
printf("최대 공약수는 %d입니다.\n", x);
return 0;
}
- do_while문
do
{
반복문장
} while (조건);
최소 1회 반복한다는 특징이 있다.
EX) 정수의 합 구하기
#include <stdio.h>
int main(void)
{
int number, sum = 0;
do
{
printf("정수를 입력하시오: ");
scanf_s("%d", &number);
sum += number;
} while (number != 0);
printf("숫자들의 합 = %d \n", sum);
return 0;
}
+ 난수 함수(rand)
srand((unsigned)time(NULL)); //난수 발생기 시드 설정 <time.h>
rand()%100; // 0~99까지 난수 발생 <stdlib.h>
- for문
for(초기식;조건식;증감식){
반복문장
}
초기식 : 반복루프를 시작하기 전에 한번만 실행된다. 변수 값을 초기화하는 용도로 사용된다.
조건식 : 반복의 조건을 검사하는 수식이다. 거짓이면 반복이 중단된다.
증감식 : 한 번의 루프 실행이 끝나면 증감식이 실행된다.
EX) 1~10까지의 정수의 합계
#include <stdio.h>
int main(void)
{
int i, sum;
sum = 0;
for(i = 1; i <= 10; i++)
sum += i;
printf("1부터 10까지의 정수의 합= %d\n",sum);
return 0;
}
- while과 for의 관계
- for의 다양한 증감수식의 형태
for(int i=10;i>0;i--)
for(int i=0;i<10;i+=2)
for(int i=0;i<100;i=(i*i)+2)
for(; ; ) //무한 반복 루프
for(;i<100;i++) //초기화 부분 생략
for(i=0,k=0;i<100;i++) //2개 이상의 변수 초기화
for(printf("반복"),i=0;i<100;i++)
for(i=0;i<100&&sum<2000;i++)
- 무한루프 해결
continue: 다음 반복을 시작한다.
break : 반복을 중단한다. (하나의 루프만 벗어날 수 있다.)
goto : 여러 개의 루프를 한번에 벗어날 수 있다.
'대학교 > C언어' 카테고리의 다른 글
C언어 - (7) 함수와 변수 (3) | 2023.05.04 |
---|---|
C언어 - (6) 함수 (2) | 2023.05.04 |
C언어 - (4) 조건문, 반복문, 제어문 (1) | 2023.04.01 |
C언어 - (3) 수식, 연산자, 형변환 (2) | 2023.03.26 |
[전공] C언어 기초(2) - 연산, 정수 상수, 기호 상수 (2) | 2023.03.21 |