목차
1. for문
특정한 조건이 만족될 때까지 반복적으로 루프를 돈다.
for 루프(loop)라고도 부른다.
일정한 횟수만큼 반복할 때, 유용하게 사용된다.
for (초기식; 조건식; 증감식){
문장들;
}
1) 초기식: 루프 시작시 사용되며, 루프를 초기화한다.
2) 조건식: 참인 경우 문장을 실행하며 루프가 계속 돌고, 거짓이면 종료한다.
논리연산자로 여러 가지 조건을 결합할 수도 있다.
3) 증감식: for문이 무한루프에 빠지지 않으려면 종료 조건이 있어야 한다.
반복문에서는 루프를 제어해주는 변수(루프 제어 변수)를 만들어 이를 증가, 감소 시켜 조건식의 조건 상태를 변화시킨다.
주로 증가 수식이 사용되나, 경우에 따라 감소 수식도 사용된다.
2. 주의점
2-1 순서 주의하기
문장을 실행한 다음, 증감식을 수행한다.
초기식 -> 조건식 -> 문장실행 -> 증감식
2-2 ; ; ; --> 무한루프 -> Ctrl +C 정지
for 문의 초기화, 조건식, 증감식이 모두 비어 있으면 무한 루프에 빠진다.
이를 중지하려면 Ctrl -C를 누른다.
3. 연습문제
3-1 1-10까지 정수의 합 구하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, sum;
sum = 0;
for (i = 0; i < 11; i++) {
sum += i;
}
printf("1-10까지 정수의 합은 %d 입니다.\n", sum);
return 0;
}
>> 1-10까지 정수의 합은 55 입니다.
3-2 직사각형 모양을 출력하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i;
char star='*';
//첫 번째 줄
for (i = 0; i < 10; i++) {
printf("%c", star);
}
printf("\n");
//두 번째 줄
for (i = 0; i < 6; i++) {
printf("%c %c\n", star, star);
}
//세 번째 줄
for (i = 0; i < 10; i++) {
printf("%c", star);
}
printf("\n");
return 0;
}
3-3 팩토리얼 값 계산하기
팩토리얼 : n! = 1x2x3x..xn
다양한 알고리즘으로 팩토리얼 값을 계산하는 코드를 작성해보자.
-n과 가까운 숫자부터 곱하는 경우
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int number, i;
printf("구하고자 하는 숫자를 입력하세요\n");
scanf("%d", &number);
printf("%d!를 계산해보겠습니다\n", number);
//첫 번째 줄
for (i = number; i > 1; i--) {
number = number * (i-1);
}
printf("정답은 %d입니다\n", number);
return 0;
}
-1부터 곱하는 경우 ex) 1*4*3*2
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int number, i;
int fact;
printf("구하고자 하는 숫자를 입력하세요\n");
scanf("%d", &number);
fact = number;
printf("%d!를 계산해보겠습니다\n", number);
for (i = 1; i < number; i++) {
fact = fact * i;
}
printf("정답은 %d입니다\n", fact);
return 0;
}
-1부터 곱하는 경우 ex) 1*1*2*3*4
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int number, i;
int fact=1;
printf("구하고자 하는 숫자를 입력하세요\n");
scanf("%d", &number);
printf("%d!를 계산해보겠습니다\n", number);
for (i = 1; i <= number; i++) {
fact = fact * i;
}
printf("정답은 %d입니다\n", fact);
return 0;
}
4. 중첩 반복문 nested loop
반복문도 중첩되어 사용될 수 있다.
반복문 안에 반복문이 있는 구조이다.
바깥에 위치한 반복문을 바깥쪽 반복문 Outer loop
안쪽에 위치한 반복문을 안쪽 반복문 Inner loop라고 한다.
for (i = 1; i <= x; i++) {
for (j = 1; j <= y; j++) {
printf("%d*%d=%d\n", i, j, i*j);
}
printf("\n");
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 26차시 break, continue, 연습문제 (0) | 2023.03.26 |
---|---|
C언어 25차시 for문 연습문제 1 (0) | 2023.03.26 |
C언어 23차시 do-while문, 연습문제 (0) | 2023.03.25 |
C언어 랜덤함수, 난수 만들기, rand(), rand()%, srand(), time(NULL) (0) | 2023.03.25 |
C언어 22차시 반복문 iteration, system함수, 루프제어변수 (0) | 2023.03.25 |