🖥C & C++/인프런 기초학습

[C/C++] 15강~17강 정리

728x90
반응형

< 15강. 반복하기 >


while문 사용하기


#include <stdio.h>



int main() {

    int i = 1;

    while (i <= 10) {

        printf("%d\n",i);

        i++;

    }

    printf("끝\n");

}


i가 11이 되는 순간 중괄호를 나가서 아래의 printf문을 실행한다.



* do-while


// do-while

#include <stdio.h>


int main() {

    int i = 18;

    

    do {

        printf("%d\n",i);

        i++;

    } while (i <= 10);

}


조건이 어떻건 간에 처음은 출력함. i가 18이면 조건에 맞지 않으나 첫 출력은 함 



* 무한 반복


// 무한 반복

#include <stdio.h>


int main(){

    int i = 1;

    

    while (true) {

        printf("%d",i);

        i++;

    }

}


 멈추기 위해서는 ctrl + c 누르면 정지된다. 


#include <stdio.h>


int main(){

    int n;

    

    do {

        printf("제발 0을 입력해주세요!!\n");

        scanf("%d",&n);

    } while (n != 0);

    

    printf("드디어 0이 입력됨!\n");

}


이렇게 조건문을 달 수도 있다. 



< 16강. for 문 1 >



for (시작; 조건; 증가)


#include <stdio.h>


int main() {

    int i;

    i = 1;

    

    for (i=1; i <= 10; i++) {

        printf("%d\n",i);

    }

}


while이랑 다를 바가 없음!


for문은...


일정하게 증가/감소되는 변수가 필요할 때 사용된다.


배열의 모든 원소에 순차적으로 접근하고 싶을 때 사용된다.


특정 횟수만큼 작업을 반복하고 싶을 때 사용된다.



#include <stdio.h>


int main() {

    // 1, 2, 4, 8, 16, 32 ,... 입력하는 수 까지 출력하기

    

    int n;

    scanf("%d",&n);

    

    // 안에서 선언 vs 밖에서 선언

    for (int i = 1; i <= n ; i *= 2) {

        printf("%d\n",i);

    }

}



내가 입력하는 n보다 같거나 작은 숫자들을 출력하도록



i를 for문 안에서 선언했기에 for문 안에서만 i라는 변수를 사용할 수 있는 것


중괄호 밖에서 i를 쓰면 "선언되지 않은 변수"라고 에러가 뜬다.


#include <stdio.h>


int main () {

    // 1~n까지 숫자의 합을 출력

    

    int n;

    scanf("%d",&n);

    

    int sum = 0;

    for (int i = 1; i <= n; i++){

        sum += i;

    }

    printf("%d\n",sum);

}



연속적인 합 계산!



#include <stdio.h>


int main() {

    int n;

    

    scanf("%d",&n);

    

    for (int i = 1; i <= n; i++) {

        printf("*");

    }

}


반복에 대한 for문 파이썬과 쓰는 방식이 다르니 잘 생각하면서 할 것!



< 17강. for 문 2 >


for문을 자유자재로 사용할  있다. 


for (시작; 조건; 증가)


for ( ; true ; )  초깃값과 증가연산을 안 적어놔도 된다. (특수한 조건하에서만 증가하도록 할 경우) 


for ( ;  ; )   조건 빼놓고 하면 true로 가정하고 실행이 됨





#include <stdio.h>


int main() {

    int n;

    

    scanf("%d",&n);

    

    int t = 1;

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

        printf("2^%d = %d\n",i,t);

        t *= 2;

    }

}




초기에 두 개 이상의 변수를 지정할 수 있다. (증가연산도)


#include <stdio.h>


int main() {

    int n;

    

    scanf("%d",&n);

    

    for (int i = 0, t = 1; i <= n; i++, t *= 2) {

        printf("2^%d = %d\n",i,t);

    }

}



for문에서는 생략도 가능하고 2개 이상도 입력 가능하다. 


연산의 경우에는 "순서" 에 유의해서 작성해야한다. 그러면 중괄호가 사라지게 되는데 그 때는 " ; "를 사용하면 됨!



int main() {

    int n;

    

    scanf("%d",&n);

    

    int i, t;

    for (i = 0, t = 1; i <= n; i++, t *= 2) {

        printf("2^%d = %d\n",i,t);

    }

}


밖에서 선언하고 값만 입력해도 된다. 


















728x90
반응형