728x90
CH05 제어문-반복구조
1. C언어는
- 구조화된 프로그래밍
- 블록 제어구조 {}
- 순차(seauence) 제어구조
- 선택(select) 제어구조
- 반복(looping) 제어구조
제어문
제어구조 | 제어문 |
순차구조 | int a; # 변수 선언문; a = 10 + 20; # 변수 대입문; |
선택구조 | if문 switch ~ case 문 |
반복구조 | while문 do ~ while문 for문 |
제어명령문; | break continue go to |
2. while문
형식
제어변수 초기화;
while(조건식)
{
반복 수행문;
제어변수 증값식;
}
#while문 예시
#include <stdio.h>
void main()
{
int i;
i = 1;
while(i<=5)
{
printf("합격!");
i++;
}
}
- while 반복문 조건식은 변수 i가 5 이하일 때까지 반복
- { printf("합격!"); i++; }: "합격!" 문자열을 출력하고, i 값을 1씩 증가
- 변수 i가 5보다 큰 경우 반복문을 종료
# while문 예시2
#include <stdio.h>
void main()
{
int i;, int sum = 0;
i = 1;
while(i<=10)
{
sum += i;
i++;
}
printf("1부터 10까지의 합: %d", sum);
}
- while 반복문은 변수 i가 10 이하일 때까지 반복
- sum 변수에 i 값을 누적하고, i 값을 1씩 증가
- printf("1부터 10까지의 합: %d", sum);: 반복문이 종료된 후, 변수 sum에 저장된 값을 출력
3. do ~ while문
# do ~ while문 예시
#include <stdio.h>
void main()
{
int i; int sum = 0
i = 1;
do
{
sum += i;
i++;
}while(i<=10)
printf("1부터 10까지의 합: %d", sum);
4. for문 VS while문
형식
for(제어변수 초기화; 조건식; 증감값)
{
반복 수행문;
}
# for문 예시
#include <stdio.h>
void main()
{
int i; int j;
for(i=2; i<10; i++)
{
for(j=1; j<10; j++)
{
printf("%d * %d = %2d", i, j, i*j);
}
}
}
- 정수형 변수 i와 j를 선언
- for(i=2; i<10; i++): 외부 반복문으로, i가 2부터 시작하여 9까지 1씩 증가
- for(j=1; j<10; j++): 내부 반복문으로, j가 1부터 시작하여 9까지 1씩 증가
- 현재의 i와 j 값을 사용하여 구구단을 계산하고 출력 "%2d" 형식 지정자는 이 형식 지정자는 정수를 출력할 때 사용되며, 출력되는 숫자를 최소한 2자리로 표시하되, 공백을 채워서 오른쪽 정렬
- 바깥쪽 for 반복문이 종료될 때까지 내부의 for 반복문이 실행되며, 결과적으로 2단부터 9단까지의 구구단이 출력
5. 무한 반복
while문
while(1)
{
반복대상;
}
for문
for(;;)
{
반복대상;
}
6. break문
# break문 예시
#include <stdio.h>
void main()
{ int num, sum=0;
while(1)
{
printf("정수 입력(끝:0));
scanf("%d", &num);
if(num==0)
break;
sum += num;
}
printf("입력한 정수의 합계: %d", sum);
}
- while(1): 조건식으로 1을 사용하였기 때문에 무한히 반복된다.
- scanf("%d", &num);: 사용자로부터 정수를 입력받는다.
- 입력받은 정수가 0인 경우, 즉 사용자가 반복을 끝내길 원하는 경우 무한 루프를 탈출하기 위해 break 문을 사용한다.
- sum += num;: 0이 아닌 정수가 입력되면, 해당 정수를 sum에 더한다.
- 무한 루프를 탈출한 후, 입력받은 정수들의 합을 출력한다.
7. continue문
# continue문 예시
#include <stdio.h>
void main()
{ int i;
for(i=1; i<=10; i++)
{
if(i%2 == 0)
continue;
printf("%d", i)
}
}
- if문은 i를 2로 나눈 나머지가 0인 경우(즉, 짝수인 경우) continue 문을 사용하여 반복문의 다음 반복으로 넘어간다. 이는 짝수일 경우 아래의 printf 문을 실행하지 않고 반복문의 다음 반복으로 넘어가게 한다.
- 홀수값 출력
8. goto문
- 무조건분기 goto문
- 잘 사용하지는 않지만 유용한 경우가 있어 C언어에는 존재한다
# goto문 예시
#include <stdio.h>
void main()
{ int i;
START:
printf("문자 하나를 입력 (Q:종료) :);
scanf("%c", &ch);
if( ch == 'Q')
goto END;
else
goto START;
END: printf("종료");
}
- START:: 레이블(label)인 START를 정의합니다. 이는 goto 문에서 이동할 위치를 나타낸다.
- if( ch == 'Q') goto END;: 입력받은 문자가 'Q'인 경우에는 END로 이동한다.
- else goto START;: 그렇지 않은 경우에는 START로 이동하여 다시 반복한다.
- END:: 레이블(label)인 END를 정의합니다. 'Q'를 입력하면 이 위치로 이동하여 프로그램이 종료된다.
728x90
'자격증' 카테고리의 다른 글
[정보처리기사] 유튜브 두목넷 정보처리기사 실기를 위한 C 특강(7강 포인터) (0) | 2024.02.18 |
---|---|
[정보처리기사] 유튜브 두목넷 정보처리기사 실기를 위한 C 특강(6강 배열) (0) | 2024.02.17 |
[정보처리기사] 유튜브 두목넷 정보처리기사 실기를 위한 C 특강(4강 제어문-선택구조) (0) | 2024.02.14 |
[정보처리기사] 유튜브 두목넷 정보처리기사 실기를 위한 C 특강(3강 연산자) (1) | 2024.02.13 |
[정보처리기사] 유튜브 두목넷 정보처리기사 실기를 위한 C 특강(2강 변수와 상수) (1) | 2024.02.08 |