< 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);
}
}
밖에서 선언하고 값만 입력해도 된다.