본문 바로가기
프로그래밍/C

#2. C언어 기초 - 반복문

by 물고기고기 2020. 4. 20.

C에 대한 문법을 적으면서 파이썬코드와 함께 복습하기로 한다.

 

1. 증감연산

// ++ 연산자
	
	int a = 10;
	printf("a는 %d\n", a);

	a++;
	print(a); 

	int b = 20;
	printf("b는 %d\n",++b); // b=21, ++동작을 하고 끝내라
	printf("%d\n",b++); 
	// b=21, 문장을 수행하고나서 다음문장 넘어갈때, 그러나 b+3으로 적으면 24가 출력됨
	printf("%d\n",b); // b=22

# 파이썬에서는 없음

2. for 문

// for (선언; 조건; 증감)

	for (int i = 1; i <= 10; i++)
	{
		printf("%d\n", i);
	}
# python과 비교할때
>>> test_list = ['one', 'two', 'three'] 
>>> for i in test_list: 
...     print(i)
... 
one 
two 
three

3. while 문

// while (조건) {} , for문 처럼 int 선언을 하려면 while문 밖에서 선언
	int i = 1;
	while (i<=10)
	{
		printf("%d\n", i++);
		// or i++;
	}
# python과 비교할때

>>> treeHit = 0
>>> while treeHit < 10:
...     treeHit = treeHit +1
...     print("나무를 %d번 찍었습니다." % treeHit)
...     if treeHit == 10:
...         print("나무 넘어갑니다.")
...
나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어갑니다.

4. Do while문

// do {} while (조건);
	int i = 1;
	do {
		printf("%d\n", i++);
	} while (i<=10);

5. 이중반복문

// 2중 반복문
	// 크게 세번 반복하고 작은걸 다섯번 반복할 것
	for (int i = 1; i <= 3; i++)
	{
		printf("첫번째 반복문 : %d\n", i);

		for (int j = 1; j <= 5; j++)
		{
			printf("	두번째 반복문 : %d\n", j);
		} 
	}
# Python과 비교할때

for i in range(5):          # 5번 반복. 바깥쪽 루프는 세로 방향
    for j in range(5):      # 5번 반복. 안쪽 루프는 가로 방향
        print('j:', j, sep='', end=' ')    # j값 출력. end에 ' '를 지정하여 줄바꿈 대신 한 칸 띄움
    print('i:', i, '\\n', sep='')    # i값 출력, 개행 문자 모양도 출력
                                     # 가로 방향으로 숫자를 모두 출력한 뒤 다음 줄로 넘어감

출처 : https://dojang.io/mod/page/view.php?id=2259
// 활용 구구단
	for (int i = 2; i <= 9; i++)
	{
		printf("%단 \n", i);
		for (int j = 1; j <= 9; j++)
		{
			printf("	%d * %d = %d", i, j, i*j);
		}
	}
    
// 이중 for문, 피라미드 만들기

	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			printf("*");
		}
		printf("\n");
	}

PS. 이하는 오류가 뜬 코드들이다. C언어는 어쩐지 문자에 숫자를 곱해 문자를 여러번 출력하는 형식을 지원하지 않는 듯 하다.

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

	int i = 10;
	printf("*"*i);

댓글