본문 바로가기

C언어

c언어 2 (조건문, 반복문)

조건문

: 조건에 의해 실행되는 구문을 지정

 

조건문의 기본

if (조건) { ...

}

else if (조건) {...

}

else { ...

}

 

반복문

: 조건이 '참'이라면 반복하는 구문을 지정

(조건을 가지고 조건이 만족하는 동안 지속적으로 같은 코드를 계속 실행)

 

반복문의 기본

while (조건) {

    ... 반복할 코드

}

for (시작시 실행구문; 조건; 반복 마지막에 실행구문){

    ... 반복할 코드

}

 

ex)

int main (){

    int count = 0;

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

        count = count + 10;

    }

    printf (" count = %d ", count );

    return 0;

}

 

논리연산자

• && : 논리적 AND 연산 (~이고 ~라면) 모두 참이여만 참

• || : 논리적 OR 연산 (~또는 ~라면) 모두 거짓이여야 거짓

 

비교연산자

•  A == A : 같으면 참

•  A != A : 다르면 참

 

ex) 입력 받는 숫자로 그 숫자 만큼 A, B를 각각 호출하는 프로그램 (0 이하는 출력 X)

int getInput () { //함수 생성

    int input = 0;

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

    fseek (stdin, 0, SEEK_END); //scanf 두 번 이상 사용시 필요한 구문

    scanf ("%d", &input );

    return input;

 

int main (){

    int input = getInput (); // int로 input선언과 동시에 함수 호출, input 이라는 변수 두 번 선언 이유 : Braket 범위 안에선 변수 중복 X 밖에선 ㄱㅊ

    if (input <= 0){

        printf ("숫자를 잘못 입력하였습니다. ");

    }

    else {

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

            printf("A");

        }

    }

    printf("\n"); // A 이후 줄바꿈

    input = getInput(); // getInput 함수 재호출

 

    if (input <= 0){

        printf ("숫자를 잘못 입력하였습니다. ");

    }

    else {

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

                printf("B");

             }

    }

    return 0;

 

}

 

ex) 과제

프로젝트를 새로 만들고 사용자로부터 차례대로 input1, input2, operation 입력을 받아

operation이 0일 경우 input1 + input2를 계산하고

operation이 1일 경우 input1 - input2를 계산하고

operation이 2일 경우 input1을 input2만큼 거듭제곱하여

출력하는 프로그램을 작성하세요

operation이 0,1,2가 모두 아닐 경우 오류메세지와 함께 종료되어야 합니다.

덧셈과 뺄셈 제곱 모두 함수를 활용하여 계산하세요

 

#include <cstdio>

 

int getInput(){

    int input;

    

    fseek(stdin, 0, SEEK_END);

    scanf("%d", &input);

    

    return input;

}

int sum(int a, int b){

    return a+b;

}

int sub(int a, int b){

    return a-b;

}

int pow(int a, int b){

    int value = 1;

    

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

        value = value * a;

    } //i가 b번 반복하면서 value를 a에다가 곱해서 다시 value로 집어 넣는다

    return value;

}

 

int main(){

    printf("input1을 입력하시오 : ");

    int input1 = getInput();

    

    printf("input2를 입력하시오 : ");

    int input2 = getInput();

    

    printf("operation을 입력하시오 : ");

    int operation = getInput();

    

    int result;

    

    if (operation == 0){

        result = sum(input1, input2);

        printf("input1 + input2 = %d", result);

    }

    else if (operation == 1){

        result = sub(input1, input2);

        printf("input1 - input2 = %d", result);

    }

    else if (operation == 2){

        result = pow(input1, input2);

        printf("input1 을 input2 만큼 제곱하면 %d 입니다.", result);

    }

    else {

        printf("오류 메세지");

    }

}