웹사이트 검색

C 명령줄 자습서 6 - 코드 들여쓰기, 증가/감소 연산자, do-while 및 for 루프 등


지금까지 총 5개의 C 프로그래밍 자습서를 다루었습니다. 각 튜토리얼은 특정 항목에 중점을 두었습니다. 주제에 접근하는 과정에서 일부 일반적인 개념은 그대로 유지되었습니다. 이러한 개념 중 일부는 이 튜토리얼에서 잘 논의되고 있습니다.

시작하겠습니다.

항상 코드를 적절하게 들여쓰기해야 합니다. 우선 들여쓰기는 코드를 더 읽기 쉽게 만들기 위해 공백/탭/개행을 넣는 방법입니다. 일반적으로 블록이나 루프와 관련된 코드 라인은 동일한 간격에 배치됩니다. 예를 들어 들여쓰기가 되지 않은 코드는 다음과 같습니다.

#include <stdio.h>

int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("The input contains %d lines", counter+1);
return 0;
}

들여쓰기가 적용된 동일한 코드는 다음과 같습니다.

#include <stdio.h>

int main (void)
{
int c =0, counter=0;
c = getchar();

while(c != EOF)
{
c = getchar();

if(c == '\n')
counter = counter+1;
}

printf("The input contains %d lines", counter+1);

return 0;
}

보시다시피 들여쓰기된 코드가 정렬되어 읽기 쉽고 검토하기 쉽습니다.

이전 자습서에서 알아차렸을 수 있습니다. 변수를 증가시키기 위해 다음과 같은 방법을 사용했습니다.

a = a+1;

이 방법이 잘못된 것은 아니지만 대중적이고 많이 사용되는 또 다른 방법이 있습니다. 증가 연산자를 사용하는 것입니다.

a++

이 방법을 사용하면 a의 값이 1씩 증가합니다. 이는 사후 증가라는 점에 유의하세요. 사전 증분 연산자도 있습니다.

++a

둘 사이의 차이점은 사후 증가에 있습니다. 변수가 먼저 사용된 다음 증가하는 경우 해당 값이 사용됩니다. 반면에 사전 증가는 값을 먼저 증가시킨 다음 변수를 사용합니다.

다음 코드는 차이점을 더 잘 설명합니다.

#include <stdio.h>

int main (void)
{
int a =0, b=0;

printf("a = %d", a++);
printf("\n b = %d", ++b);

return 0;
}

이 프로그램의 출력은 다음과 같습니다.

a = 0
b = 1

보시다시피 사후 증가는 즉시 반영되지 않았지만 사전 증가는 반영되었습니다.

감소 연산자에도 동일한 논리가 적용됩니다.

#include <stdio.h>

int main (void)
{
int a =1, b=1;

printf("a = %d", a--);
printf("\n b = %d", --b);

return 0;
}

출력은 다음과 같습니다.

a = 1
b = 0

C에서 코드에 주석을 달 수 있는 두 가지 방법이 있습니다. 하나는 //를 사용하는 것입니다. 이렇게 하면 한 번에 한 줄만 주석을 달 수 있습니다.

// int a = 10;
// a = 9;

다른 방법은 줄 주위에 /* .... */를 넣는 것입니다. 이렇게 하면 한 번에 여러 줄에 주석을 달 수 있습니다.

/* int a = 10;
a = 9; */

지금까지 우리는 조건이 참인 경우에만 코드 실행이 while 블록에 들어가는 while 루프에 대해서만 다루었습니다.

while(condition)

{

/*

   line of code

   line of code

   ...

*/

}

코드 블록이 처음으로 한 번 실행된 다음 while 조건이 확인되는 do-while 루프도 있습니다.

 do
{

// few lines of code

} while (condition);

이제 문제는 언제 do-while을 사용하는가입니다. 예를 들어 보겠습니다. 사용자가 10보다 큰 값을 입력하기를 원하고 프로그램이 값을 얻을 때까지 사용자에게 이러한 값을 입력하도록 계속 요청해야 한다고 가정해 보겠습니다. 그런 다음 do-while 루프가 이 경우에 어떻게 도움이 되는지 다음과 같습니다.

do
{
printf("Please enter a number greater than 10: ");
scanf("%d", &n);

}while(n<=10);

다음은 for 루프입니다. while과 같이 확인할 조건이 있지만 많은 경우에 유용한 증가 문 또는 감소 문도 있습니다.

for(initialization; condition; increment/decrement)
{
// lines of code here
}  

다음은 0에서 20 사이의 모든 짝수를 인쇄하는 예제 코드입니다.

#include <stdio.h>

int main()
{
int i;

for(i=0;i<=20;i=i+2)
printf(" %d ", i);

return 0;
}

물론 for 루프와 관련된 많은 팁과 요령이 있지만 향후 튜토리얼에서 천천히 그리고 꾸준히 논의하는 것이 좋습니다.

여기, 이 튜토리얼에서 우리는 몇 가지 좋은 팁과 새로운 개념을 배웠습니다. 앞으로 나올 튜토리얼에서 이것들을 확장할 것입니다. 그때까지 오늘 여기서 논의한 내용을 연습하고 의심이나 질문이 있는 경우 의견을 남겨주세요.