반복문이 뭐냐.
Hi~ 를 3번 출력할거야.
그럼 printf 함수를 3번 써도 같습니다.
하지만 프로그램 코드는 라인수를 적게 하며 효율이 높은 코딩이 좋은 코딩습관이므로.
반복문을 사용합니다.
반복문은 3가지가 존재합니다.
while(탈출조건)
{
}
do
{
}while(탈출 조건);
단. while, do~while은 반복문 스코프내에 증감문이 있어야 합니다.
그리고 탈출조건이 참 중요합니다.
조건문이라고 하는데 반복루프가 무한루프에 빠지지 않기 하기 위한 탈출 조건 = 조건문 입니다.
while 과 do ~ while 의 차이점은 조건문의 위치에 따라
while은 시작부터 조건을 검사하여 불일치 하면 실행을 하지 않고 넘어 갈 수도 있습니다.
do~while은 무조건 한 번은 실행을 합니다.
그 차이점이 있습니다.
예제.
#include <stdio.h>
프로그램 사용자로부터 양의 정수를 하나 입력 받아서 그 수 만큼 hello world를 출력하라.
int main()
{
int input;
int i;
input = 0;
i = 0;
printf("정수 하나를 입력해주세요.\n");
scanf("%d", &input);
while(i < input)
{
printf("Hello world\n");
i++;
}
return 0;
}
/*프로그램 사용자로부터 양의 정수를 하나 입력 받아서 그 수 만큼 3배수를 출력하라.
*/
int main()
{
int input = 0 ;
int multiple = 0;
printf("정수 하나를 입력해주세요.\n");
scanf("%d", &input);
while(multiple++<input)
{
printf("%d ", multiple*3 );
}
return 0;
}
/*프로그램 사용자로부터 정수를 계속 입력받으며 값을 더해 나간다.
0을 입력 받으면 종료.
int main()
{
int input , sum;
sum = 0;
input = 1;
while(input != 0)
{
printf("정수 입력해주세요 exit input zero .\n");
scanf("%d" , &input);
sum += input;
}
printf("이제까지 입력된 정수의 합 : %d\n" , sum);
return 0;
}
/* 프로그램 사용자로부터 입력받은 숫자에 해당하는 구구단을 출력하되 역순으로.
int main()
{
int input;
int i;
printf("정수 입력해주세요 \n");
scanf("%d" , &input);
i = 9;
while(i>0)
{
printf("%d * %d = %d\n" , input, i , input*i );
i--;
}
return 0;
}
/*
프로그램 사용자로부터 입력 받은 정수의 평균을 출력한다.
조건 1 몇 개의 정수를 입력 할 것인지 사용자에게 묻고 그만큼 입력 받는다.
조건 2 평균값은 소수점 이하까지 출력한다.
*/
int main()
{
int i = 0;
int inputNum , inputData;
int sum = 0;
float average = 0.0f;
printf("How many input integers ? \n");
scanf("%d" , &inputNum);
while( i < inputNum )
{
printf("input integers ? \n");
scanf("%d" , &inputData);
sum += inputData;
i++;
}
average = sum/inputNum;
printf("average of input number : %.2f \n " , average);
}
/* 정수 5개를 입력 받아 합을 출력하는데 입력된 정수가 1이상이어야 한다.1을 입력 할시 다시 입력을 요구 받는다.
그리고 while 중첩으로 이 문제를 해결해본다.
*/
int main()
{
int input = 0 , sum = 0 , count = 0;
while(count < 5)
{
printf("input Five integers but integer > 1 \n");
scanf("%d" , &input);
while(input == 1)
{
printf("input integers but integer > 1 \n");
scanf("%d" , &input);
}
count++;
sum += input;
}
printf("sum of input integers %d \n" , sum);
return 0;
}
/*
*
0*
00*
000*
0000* 이와 같이 출력 되도록 while 중첩문으로 프로그램을 작성하라.
*/
int main()
{
int count = 0 , star = 0;
while(star < 5)
{
while(count < star)
{
printf("0");
count++;
}
count = 0;
printf("*");
printf("\n");
star++;
}
}
int main()
{
int i , j;
i = 2;
j = 1;
do{
do{
printf("%d * %d = %d\n" , i , j, i*j);
j++;
}while(j < 10);
j = 1;
i++;
}while(i < 10);
return 0;
}
/* 짝수 합을 구하는 프로그램 */
int main()
{
int sum = 0 , i = 0;
do{
i += 2;
sum += i;
}while(i < 100);
printf("%d" , sum);
return 0;
}
for 문을 이용한 반복루프입니다.
for문은 초기문, 조건문,증감문이 한 줄로 되어 있어 가독이 좋고 ,
반복 횟수가 정해진 것이라면 for 문이 가장 최선의 방법입니다.
#include <stdio.h>
//int main(void)
//{
//
// int total = 0;
// int i, num;
//
// printf("0부터 input까지 덧셈, 숫자 입력 : \n");
// scanf("%d" , &num);
//
// for(i = 0; i < num + 1; i++)
// {
// total+=i;
// }
// printf("0부터 %d까지 덧셈 결과 : %d\n " , num, total);
// return 0;
//}
// for 반복문은 반복횟수가 정해져 있을 경우에 최선이다.
/*
int main()
{
int inputOne = 0, inputTwo =0;
int i, sum = 0;
printf("정수 2개를 입력하시오. 단 두번째 정수는 첫번째 정수보다 커야 한다. \n입력 : ");
scanf("%d %d" , &inputOne , &inputTwo);
for(i = inputOne; i <= inputTwo; i++ )
{
sum += i;
}
printf("입력된 정수 A부터 B까지 합은 : %d\n" , sum);
return 0;
}
*/
int main()
{
int input;
int i,fatorial = 0;
printf("팩토리얼 계산 n 값을 입력해주세요. : \n");
scanf("%d", &input);
fatorial = 1;
for(i = 2; i <= input; i++)
{
fatorial = fatorial*i;
}
printf("팩토리얼 n! 값 : %d\n", fatorial);
return 0;
}
'프로그래밍 > C언어' 카테고리의 다른 글
Yoda Condition 이란 방어코딩의 종류에 대해 알아보자!! (0) | 2014.10.02 |
---|---|
ANCI C (0) | 2014.03.05 |
2강. C언어 입문기 (0) | 2014.03.02 |
1강. C언어 네 이놈. (0) | 2014.03.02 |
1.5.2 Count Chracters 2st version (0) | 2011.11.23 |