* 반복문
=> 조건식을 비교하면서 참일 경우 종속 문장을 실행시키고 변화식을 거쳐 조건식을 또다시 비교하는 문법
- for ()
- while ()
- do ~ while ()
* for ( )문
< 기본 원형 >
for ( 초기식; 조건식; 변화식 )
{
종속 문장;
}
=> 초기식 > 조건식 > 종속 문장 > 변화식 > 조건식 > 종속 문장 > 변화식 > .... 순으로 진행
=> 종속 문장이 한 줄일때는 { }를 생략 가능
---------------------------------------------------------------------------
ex)
// 기본 원형 예시 (예전 문법 버전)
int = i; // i를 먼저 정의한 후 for문에서 초기식을 작성
for (i = 0; i < 10; i++)
{
printf("Hello world\n");
}
// 기본 원형 예시 (현재 문법 버전)
for (int i = 0; i < 10; i++) // for문 안에서 i의 정의와 동시에 초기식을 작성
{
printf("Hello world\n");
}
// 소문자 알파벳 하나를 입력 받고, a부터 입력받은 알파벳까지 출력
char m; // ASCII 코드를 사용하지 않아도 알아서 인식함
printf("입력: ");
scanf("%c", &m);
printf("출력: ") // 출력을 한 번만 나타내기 위해 반복 문안에 작성하지 않음
for (char i = 'a'; i <= m; i++)
{
printf(" %c", i);
}
< for()문 무한 루프 >
for ( ; ; )
종속 문장;
=> 초기식, 조건식, 변화식을 생략
---------------------------------------------------------------------------
ex)
// for()문 무한 루프 예시
for( ; ; )
{
printf("Hello world\n");
}
// 숫자 한 개를 입력받고 출력을 반복하다가 9가 입력됐을 때 종료되는 프로그램
int num;
for ( ; ; )
{
printf("입력 : ");
scanf("%d", &num);
if ( num == 9 )
break;
printf("출력: %d\n", num);
}
< 기타 키워드 >
break : 해당 키워드를 만나게 되면 반복문을 탈출
continue : 해당 키워드를 만나게 되면 continue보다 아래 있는 종속 문장을 실행하지 않고 진행
---------------------------------------------------------------------------
ex)
// break 예시
for ( int i = 0; i < 10; i++ )
{
if ( i == 5 )
break;
printf("Hello world i: %d\n", i);
}
=>
Hello world i: 0
Hello world i: 1
Hello world i: 2
Hello world i: 3
Hello world i: 4
// continue 예시
for (int i = 0; i < 10; i++)
{
if ( i == 5 )
continue;
printf("Hello world i: %d\n", i);
}
=>
Hello world i: 0
Hello world i: 1
Hello world i: 2
Hello world i: 3
Hello world i: 4
Hello world i: 6
Hello world i: 7
Hello world i: 8
Hello world i: 9
< 이중 for ( ) 문 >
for ( 초기식; 조건식; 변화식 )
{
for ( 초기식; 조건식; 변화식)
{
종속 문장;
}
}
---------------------------------------------------------------------------
ex)
// 이중 for ( )문 예시
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 5; j++)
{
printf("i: %d, j: %d ", i, j);
}
printf("\n");
}
=>
i: 0, j: 0 i: 0, j: 1 i: 0, j: 2 i: 0, j: 3 i: 0, j: 4
i: 1, j: 0 i: 1, j: 1 i: 1, j: 2 i: 1, j: 3 i: 1, j: 4
i: 2, j: 0 i: 2, j: 1 i: 2, j: 2 i: 2, j: 3 i: 2, j: 4
i: 3, j: 0 i: 3, j: 1 i: 3, j: 2 i: 3, j: 3 i: 3, j: 4
i: 4, j: 0 i: 4, j: 1 i: 4, j: 2 i: 4, j: 3 i: 4, j: 4
// *출력
for (char i = 0; i < 5; i++) // 줄의 개수
{
for (char j = 0; j < 5; j++) // 한 줄의 별의 개수
{
printf("*");
}
printf("\n");
}
=>
*****
*****
*****
*****
*****
// *출력2
for (int i = 0; i < 5; i++) // 줄을 출력해줌
{
for (int j; j < i; j++) // 공백을 출력해줌, i를 이용해 공백 횟수를 조절할 수 있다
{
printf(" ");
}
for (int j = 0; j < 2; j++) // *을 출력해줌
{
printf("*");
}
printf("\n");
}
'Progremming Study > C언어' 카테고리의 다른 글
c언어 기초 _ 반복문 ( do ~ while ( )문 ) (0) | 2022.06.24 |
---|---|
c언어 기초 _ 반복문 ( while ( )문 ) (0) | 2022.06.21 |
c언어 기초 _ 조건문 ( switch ~ case ) (0) | 2022.06.20 |
c언어 기초 _ 조건문 ( if ~ else) (0) | 2022.06.20 |
c언어 기초 _ 연산자 ( 삼항, sizeof ) (0) | 2022.06.20 |