본문 바로가기

코린이

Day10 본문

C언어/C언어 기본문법

Day10

winsome99 2022. 11. 10. 18:55
반응형

 

반복문

반복문은 조건식을 비교하면서 참일 경우 종속 문장을 실행시키고 변화식을 거쳐 조건식을 또 다시 비교하는 문법으로 for(), while(), do ~ while() 3가지 존재한다. 오늘은 for() 문에 대해 공부하였다.

for문의 기본 원형: 
	for(초기식; 조건식; 변화식)
	{
		종속 문장;
	}
 

for 문의 원형으로 초기식이 먼저 실행하고 그 뒤에 조건식에 맞으면 true 면 종속 문장을 실행시키고 false 이면 for 문을 종료한다. 마지막 변화식은 실행을 시킨 후에 다시 조건식을 반복한다.

for 문 실행 순서

초기식 -> 조건식 -> 종속 문장 -> 변화식 -> 조건식 -> 종속 문장 -> 변환식 -> ... 순으로 진행된다.

#include<stdio.h>

int main(){

    for (int i = 0; i < 10; i++) {
		printf("Hello World!\n");
	}

    return 0;
}
 

위에 코드는 i가 0부터 10까지 반복이며 한 번씩 반복할 때마다 "Hello World!"를 출력한다.

 

for 문에서 무한 루프를 사용하고 싶을 때는 초기식, 조건식, 변화식을 생략하면 된다.

ex) for(;;)

#include<stdio.h>

int main(){

    for (;;)
		printf("Hello World!\n");

    return 0;
}
 

기타 키워드로

break와 continue 문이 있다.

break: 해당 키워드를 만나게 되면 반복문 탈출

continue: 해당 키워드를 만나게 되면 continue보다 아래 있는 종속 문장은 실행하지 않고 진행된다.


오늘 배운 내용을 응용하여 예제를 만들어 보았다.

 

Q1) for 문을 이용하여 별도의 입력 없이 알파벳 출력

#include<stdio.h>

int main(){

    for (int i = 'A'; i <= 'Z'; i++)
		printf(" %c,", i);

    return 0;
}
 

Q2) 소문자 알파벳 하나를 입력 받고 a부터 입력한 알파벳까지 출력(for 문 사용)

 

 
 

 

 

Q3) 숫자 한 개를 입력 받고 출력을 반복하다가 숫자 9가 됐을 때는 종료되는 프로그램을 작성

#include<stdio.h>

int main(){
    
	int sum;
	for (;;) {
		printf("\n입력: ");
		scanf("%d", &sum);
		if (sum == 9) {
			printf("9가 입력되어 프로그램이 종료되었습니다.");
			break;
		}
		printf("출력: %d\n", sum);
	}

    return 0;
}
 

 

Q4) 삼중 반복문을 사용하여 9층 피라미드 만들기

#include<stdio.h>

int main(){

    for (int a = 1; a <= 9; a++) {
		for (int b = 1; b <= 9 - a; b++) {
			printf(" ");
		}
		for (int  c = 0; c < a*2-1; c++) {
			printf("*");
		}
		printf("\n");
	}
}
 

(힘들어... 그만)


#include<stdio.h>

int main(){

    for (int i = 0; i <= 8; i++) {
	    for (int j = 0; j <= 8; j++) {
		    if (i == j)	{
		    	printf("*");
		    } else if (i == 8) {
		    	printf("*");
		    } else if (i == 0) {
		    	printf("*");
		    } else if (i + j == 8) {
		    	printf("*");
		    } else if (i , j >= 8) {
		    	printf("*");
		    } else if (i, j <= 0) {
		    	printf("*");
		    } else {
		    	printf(" ");
		    }
	    }
	    printf("\n");
    }
}
 

이중 반복 문과 if 문을 사용하여 모양을 만들어봤는데 생각보다 너무 어렵고 머리를 많이 썼다...

 

#include<stdio.h>

int main(){

    for (int i = 0; i <= 18; i++) {
		for (int j = 0; j <= 18; j++) {
			if (i == j)
				printf("*");
			else if (i + j == 18)
				printf("*");
			else if (i, j <= 0)
				printf("*");
			else if (i == 0)
				printf("*");
			else if (i, j >= 18)
				printf("*");
			else if (i == 18)
				printf("*");
			else if (i == 18)
				printf("*");
			else if (i == 9)
				printf("*");
			else if (j == 9)
				printf("*");
			else
				printf(" ");
		}
		printf("\n");
	}
    return 0;
}
 

(위에 코드 만든다고 30분 이상으로 결렸다... 막판에 운 좋게 성공했다ㅋㅋㅋㅋㅋ)

(for 문 초반에는 만만하게 봤는데 문양 만드는 거 보고 한 번의 위기가 왔다...)

 

 

 

반응형

'C언어 > C언어 기본문법' 카테고리의 다른 글

Day12  (0) 2022.11.14
Day11  (0) 2022.11.11
Day9  (0) 2022.11.08
Day8  (0) 2022.11.07
Day7  (0) 2022.11.04
Comments