
for문
기본구조
for (/* 초기식 */; /* 조건식 */; /* 증감식 */) {
// 명령1;
// 명령2;
// ....
}
for문은 {} 안에 작업을 조건식이 성립할 동안 반복해주는 것이고, 매 반복마다 증감식을 실행한다.
예를 들어
<c언어>
#include <stdio.h>
int main() {
int i, sum = 0;
for (i = 0; i < 20; ++i) {
sum = sum + i;
}
printf("1부터 19까지의 합 : %d", sum);
return 0;
}
<파이썬>
sum=0
for i in range(20) :
sum+=i
print(sum)
내 생각에 아래와 같은 파이썬의 간결한문장이
for i in range(1,10)
c언어에서는 다음과 같이 복잡해진다..는 것만 제외하면 비슷하다!
for (i=0; i<20, i++)
평균을 구해보자.
<c언어>
#include <stdio.h>
int main() {
int i, subject, score;
double sum_score = 0;
printf("몇개 과목? : ");
scanf_s("%d", &subject);
printf("\n 각 과목의 점수 : \n");
for (i = 1; i <= subject; i++) {
printf("과목 %d : ", i);
scanf_s("%d", &score);
sum_score += score;
}
printf("전체 과목의 평균은 : %.2f \n", sum_score / subject);
return 0;
}
<파이썬>
subject=int(input("몇 과목 : "))
sum_score=0
for i in range (1,subject+1) :
score = int(input("과목 %d 몇점 : " %i))
sum_score+=score
print("평균은 %d" %(sum_score/subject))
break 걸기
#include < stdio.h>
int main() {
int usranswer;
printf("컴퓨터가 생각한 숫자 : \n");
for (;;) {
scanf_s("%d", &usranswer);
if (usranswer == 3) {
printf("맞추셨군요! \n");
break;
}
else {
printf("틀리셨어요!\n");
}
}
return 0;
}
for 문이 (초기식, 조건식, 증감식) 이 아니라 for(;;) 으로 작성되었다. 이것은 조건이 명시되지 않은 for문 인데, 그러면 for문은 항상 참이 되어 무한히 중괄호 속의 내용을 실행한다. 그래서 if문에 break를 걸어주었다. 파이썬과 비슷하다. break를 걸어주면 for 문을 나오게 된다. break를 만나면 그 다음에 어떤 내용이 있어도 실행시키지 않고 for문을 빠져 나온다. 기억해야 하는것은 break는 if 문이 아니라 for문을 빠져나온다는 것이다.
continue 걸기
#include < stdio.h>
int main() {
int i;
for (i = 0; i < 100; i++) {
if (i % 5 == 0) continue;
printf("%d", i);
}
return 0;
}
continue를 만나면 break처럼 다음 내용은 실행하지 않는다, 다만 break는 for문을 빠져나가지만 continue는 다시 조건문으로 돌아간다. 따라서 위의 식을 실행하면 5의 배수를 제외한 0-99까지의 수가 출력된다.
for문 중첩
#include < stdio.h>
int main() {
int i, j;
for (i = 1; i < 10; i++) {
for (j = 1; j < 10; j++) {
printf("%d x %d = %d \n", i, j, j * j);
}
}
return 0;
}
형식을 제외하고 파이썬의 for문 중첩과 거의 동일하다.
while 문
기본구조
while (/* 조건식 */) {
// 명령1;
// 명령2;
// ...
}
for문과 마찬가지로 파이썬과 비슷하다.
#include < stdio.h>
int main() {
int i = 1, sum = 0;
while (i <= 100) {
sum += i;
i++;
}
printf("1부터 100까지의 합 : %d \n", sum);
return 0;
}
i가 100이하이면 while 문 안의 내용이 계속 실행된다. i가 101이 되면 while문을 실행하지 않고 while문 밖으로 나오기 때문에 1~100까지의 합이 변수sum에 저장된다.
do-while 문
기본구조 (if, for, while문 구조랑 조~금 다르다!)
do {
// 명령1;
// 명령2;
// ...
} while (/* 조건식 */);
while문이나 for문은 먼저 조건을 확인하기 때문에 조건과 맞지 않으면 처음부터 내용을 실행하지 않는다. 하지만 do-while문은 while문의 조건에 맞지 않아도 do 문 안에 있는 내용이 최초 한번은 실행 된다.
'프로그래밍 > C언어' 카테고리의 다른 글
8-1. c언어 포인터와 상수 (0) | 2023.01.31 |
---|---|
7. c언어 배열 array, 상수 (0) | 2023.01.31 |
5. c언어 if 문 if, if else, else (1) | 2023.01.21 |
4. c언어 scanf 문자 입력 받기, 형변환 (0) | 2023.01.21 |
3. c언어 연산자 증감, 복합대입, 관계, 로직, 조건, 비트 (0) | 2023.01.20 |
댓글