본문 바로가기

C언어

c언어 3 (중첩 반복 / 제어 - 반복문에 대한 제어)

for(; ;){...}

: 항상 참이 되는 무한반복 for 구문을 이용해 단순히 무한반복 코드를 만드는 방법

같은 방법으로는 while (true){...} 가 있다.

 

반복 제어 구문

continue : 반복 구문의 처음으로 되돌아가게 하는 구문

break : 반복문을 탈출하게 하는 구문

 

ex)

// 사용자로부터 숫자를 입력 받고 해당 숫작 0이라면 continue 라는 구문을 만나게 되고 1이라면 break 라는 구문을 만나게 됨

int main() {

    //break; continue

    

    for (; ;){

        printf ("반복문 입니다. 숫자를 입력하세요 : ");

        int input;

        fseek(stdin, 0, SEEK_END);

        scanf("%d", &input);

        

        if (input == 0) {

            continue; // 반복문의 처음으로 돌아가는 역할

        }

        else if (input ==1){

            break; // 반복문을 탈출하는 역할

        }

        printf("반복문의 마지막 입니다./n");

    }

    

    printf ("프로그램이 종료되었습니다.");

    

    return 0;

}

 

중첩된 반복문

: 반복문은 한 개만 작성할 수 있는 게 아닌 여러 개를 중첩해서 작성할 수 있다.

 

ex) 

// 중첩 반복문 기본 형태

int main() {

    

    for (int i = 0; i < 5; i++) {

        for (int k = 0; k < 10; k++){

            printf ("*");

        }

        printf("\n");

    }

        

    return 0;

}

 

연습 프로그래밍 #1

사용자로 부터 숫자를 입력받아

입력받은 크기 만큼의 가로세로 크기를 갖는 사각형을

다음과 같은 모양으로 출력하세요

 *****

 *****

 *****

 *****

 *****

 

int main() {

    int input;

    

    printf("숫자를 입력해주세요 : ");

    fseek(stdin, 0, SEEK_END);

    

    scanf("%d", &input);

    

    for (int i=0; i < input; i++){

        for (int k=0; k < input; k++) {

            printf("*");

        }

        printf("\n");

    }

    return 0;

}

 

연습 프로그래밍 #2

사용자로부터 숫자를 입력받아 

입력받은 크기 만큼의 가로세로 크기를 갖는 직각삼각형을

다음과 같은 모양으로 출력하세요

*

**

***

****

*****

 

#include <cstdio>

 

int main() {

    int input;

    

    printf("숫자를 입력해주세요 : ");

    fseek(stdin, 0, SEEK_END);

    

    scanf("%d", &input);

    

    for (int i=0; i < input; i++){

        for (int k=0; k < i+1 ; k++) {

            printf("*");

        }

        printf("\n");

    }

    return 0;

}

 

연습 프로그래밍 #3

사용자로부터 숫자를 입력받아

입력받은 크기 만큼의 가로세로 크기를 갖는 직각삼각형을

다음과 같은 모양으로 출력하세요

*****

****

***

**

*

 

#include <cstdio>

 

int main() {

    int input;

    

    printf("숫자를 입력해주세요 : ");

    fseek(stdin, 0, SEEK_END);

    

    scanf("%d", &input);

    

    for (int i=0; i < input; i++){

        for (int k=0; k < input-i ; k++) {

            printf("*");

        }

        printf("\n");

    }

    return 0;

}

 

ex) 과제

프로젝트를 새로 만들고 사용자로부터 숫자를 입력받아

입력받은 크기 만큼의 가로세로 크기를 갖는 직각삼각형을

다음과 같은 모양으로 출력하세요

    *

   **

  ***

 ****

*****

#include <cstdio>

 

int main(){

    int input;

    

    printf ("숫자를 입력해주세요 : ");

    fseek(stdin, 0, SEEK_END);

    scanf("%d", &input);

    

    for(int i=0; i < input; i++){

        for(int j=0; j < input-i-1; j++){

            printf(" ");

        }

        for(int k=0; k < i+1; k++){

            printf("*");

        }

        printf("\n");

    }

    

    return 0;

}