for 사용법


C에서는 여러가지 반복문 ( while, for )과 제어문 (if, switch)가 있다.

그 중 반복 횟수를 직관적으로 지정해 지정된 횟수 만큼 반복 수행되는 for 사용법에 알아보도록 하겠다.



for


for의 사용법을 간단히 표현 하면 다음과 같다.

 for(초기 값:조건 :증감 값)

 {

       반복 실행 문

 }


초기 값 : 처음 시작하는 값

조건 : 처음 시작한 값이 언제 종료 될 지 조건 설정

증감 값 : 초기 값이 반복문이 실행 될 때마다 어떻게 별할 지 설정한 값


다음 for문을 사용한 예를 보도록 한다.

#include <stdio.h>


int main(int argc, char *argv[]) 

{

    int i = 0;  //변수 i 선언

    for( i = 1; i < 6; i++ )

{

printf("i[%d]\n",i);

}

return 0;

}


예를 보면 i 변수를 0으로 선언하였다.


이제 자세히 봐야할 for문을 살펴 보자


 for( i = 1 :i < 6 : i++ )


초기 값은 i = 1로 설정 되어 있다. 
이것은 for문이 수행되기 전 i는 1 부터 시작하라는 뜻이다.

조건은 i < 6이다. i 값이 6보다 작으면 계속 반복 하라는 뜻이다.

증감 값은 i++이다. 한번 반복문이 수행 된 후 i의 값의 증감을 설정 한 것으로
한번 반복하면 i는 1씩 증가 한다.




위의 예제를 수행 하면

 i[1]

 i[2]

 i[3]

 i[4]

 i[5]


위 i가 최초에 1이 출력 되며 한번 반복할 때 1이 증가 되고 6보다 작을 때까지 반복하는 것을 알 수 있다.



반응형

'프로그램 > C' 카테고리의 다른 글

[C] continue, break 사용법  (0) 2017.03.16
[C] if ~ else 제어문 사용법  (0) 2017.03.15
[C] while, do~while 반목문 사용법  (0) 2017.03.13
[C] 비트(bit) 단위 연산  (0) 2017.03.12
[C] 입력 함수 scanf 사용법  (0) 2017.03.10

while 사용법


C에서는 여러가지 반복문 ( while, for )과 제어문 (if, switch)가 있다.

그 중 특정한 조건을 만족하면 계속 반복 수행되는 while 사용법에 알아보도록 하겠다.



while


while의 사용법을 간단히 표현 하면 다음과 같다.

 while(조건)

 {

       반복 실행 문

 }


위에서 조건이 참이면 계속 반복 실행문이 수행 된다.

다음 while문을 사용한 예를 보도록 한다.

#include <stdio.h>


int main(int argc, char *argv[]) 

{

int i = 0;

while( i < 5 )

{

printf("i[%d]\n",i);

i++;

}

return 0;

}


예를 보면 while 안에 조건이 i 가 5보다 작으면 계속 i를 출력한다.

처음엔 i가 0이며 한번 출력 후 i가 증감한다.

그러므로 i를 0~4까지 출력 후 while문이 종료 되게 된다.






do~while


do~while의 사용법을 간단히 표현 하면 다음과 같다.

do

 {

       반복 실행 문

 }while(조건)


while문은 조건이 만족하지 않으면 한번도 수행되지 않고 넘어가지만 do~while은 무조건 한번은 수행하게 된다.

다음은 while에 조건을 잘 못 넣으면 1번도 수행을 못하는 예이다.

#include <stdio.h>


int main(int argc, char *argv[]) 

{

int i = 5;

while( i < 5 )

{

printf("i[%d]\n",i);

i++;

}

return 0;

}


예를 보면 while 안에 조건이 i 가 5보다 작으면 계속 i를 출력한다.

그러나 i가 5이기 때문에 while을 한번도 수행 안하고 프로그램이 종료가 된다.


다음은 조건 값을 그대로 두고 do~while로 바꿔 보겠다.

#include <stdio.h>


int main(int argc, char *argv[]) 

{

int i = 5;

do

{

printf("i[%d]\n",i);

i++;

}while(i<5);

return 0;

}


예를 보면 한 번은 무조건 실행 되기 때문에 i값 5를 출력 후 while 조건에 만족 하지 않아 

while문을 빠져 나온 후 종료가 된다.





반응형

'프로그램 > C' 카테고리의 다른 글

[C] if ~ else 제어문 사용법  (0) 2017.03.15
[C] for 반복문 사용법  (0) 2017.03.14
[C] 비트(bit) 단위 연산  (0) 2017.03.12
[C] 입력 함수 scanf 사용법  (0) 2017.03.10
[C] 출력 함수 printf 사용법  (0) 2017.03.09

비트 단위 연산


C에서 비트 연산 방법에 대해 알아보도록 하겠다.

이에 앞서 비트에 대한 이해가 필요한데 비트(Bit)란

컴퓨터의 전기 신호로 0,1 두 가지 수 밖에 표현을 하지

못한다 

bit는 2진수 값으로 컴퓨터가 나타내는 데이터의 최소

단위 값이라 생각하면된다.

1bit가 8개 모여 1byte가 되며 1byte는 2의 8제곱승이며 256개의

값을 표현 할 수 있다.



비트 연산자의 종류


비트 연산자의 종류는 아래와 같이 6가지 종류가 있다.

 연산자

 설명

&

  비트 단위 AND ex) 1 & 1 -> 1

|

  비트 단위 OR   ex) 1| 0 -> 1

  비트 단위 XOR ex) 1 ^ 1 -> 0    

  비트 단위 NOT   ex) ~0 -> 1

 <<

  왼쪽으로 이동   ex) a << 2

 >>

  오른쪽으로 이동 ex) b >>3 




[ & (AND) 연산자 ]

연산

결과 

0 & 0

 0 

 0 & 1 

0

1 & 0

0

1 & 1

1



     0001 0011

AND  0001 0010

 =   0001 0010



[ | (OR) 연산자 ]

연산

결과 

0 | 0

 0 

 0 | 1 

1

1 | 0

1

1 | 1

1


     0001 0011

OR   0001 0010

 =   0001 0011



[ ^ (XOR) 연산자 ]

연산

결과 

0 & 0

 0 

 0 & 1 

0

1 & 0

0

1 & 1

1



     0001 0011

 ^   0001 0010

 =   0000 0001



[ ~ (NOT) 연산자 ]

연산

결과 

0 & 0

 0 

 0 & 1 

0


 ~   0001 0010

 =   1110 1101




[ << (shift) 연산자 ]

연산

결과 

8 << 2

32 


     0000 0100

 =   0001 0000

 
8을 2진 수로 나타 내면 위와 같이 0000 0100 이다. 여기서 왼쪽으로 쉬프트 2를 했다는 것은

0000 0100 이 왼쪽으로 두 번 간다는 얘기 이다.


0000 0100   <- 앞에 숫자 00을 두개 삭제 한다.

00 0100      <- 맨 뒤에 숫자 두 개 빠진 결과에 

0001 0000   <- 00을 뒤에 붙인다.







[ >> (shift) 연산자 ]

연산

결과 

8 >> 2

 1 


     0000 0100

 =   0000 0001

 
8을 2진 수로 나타 내면 위와 같이 0000 0100 이다. 여기서 오른쪽으로 쉬프트 2를 했다는 것은

0000 0100 이 오른쪽으로 두 번 간다는 얘기 이다.


0000 0100   <- 뒤에 숫자 00을 두개 삭제 한다.

0000 01      <- 맨 뒤에 숫자 두 개 빠진 결과에 

0000 0001   <- 00을 앞에 붙인다.






반응형

'프로그램 > C' 카테고리의 다른 글

[C] for 반복문 사용법  (0) 2017.03.14
[C] while, do~while 반목문 사용법  (0) 2017.03.13
[C] 입력 함수 scanf 사용법  (0) 2017.03.10
[C] 출력 함수 printf 사용법  (0) 2017.03.09
[C] 증감 연산자  (0) 2017.03.08

출력 함수


C언어 제공하는 입력 함수에 대해 알아보겠다.

콘솔화면에 입력에 대한 함수는 scanf이다.

콘솔화면은 윈도우 프로그램 실행 창에 cmd라고 쳤을 때 나오는 command 창이다.

함수에 대한 사용법에 대해 알아보자


scanf 사용법


scanf를 사용하기 위해서는 우선 사용자가 입력할 데이터 크기 및 종류를 파악하여 알맞은 변수를 선언해 둬야 한다.

예를들어 숫자를 입력 받으면 int를 사용하거나 문자열 20문자까지 받기 위해 char a[21] 과 같은 선언이 필요하다.

예제와 함께 설명해보도록 하겠다.

int selNum = 0;

scanf( "%d", &selNum );


위의 예제는 사용자에게 데이터를 입력 받아 int형인 selNum 변수에 담는 역활을 한다.
사용자가 문자를 입력하면 엉뚱한 값이 변수에 담겨질 수 있다.

다음은 int형 문자열등 다양한 데이터를 입력받는 예제이다.

#include <stdio.h>

#include <stdlib.h>


int main(int argc, char *argv[]) 

{

int selNum = 0;

int strContent[128] = {0,};

printf("숫자를 입력하시오\n");

scanf( "%d", &selNum );

printf(" 입력한 숫자는  [%d]\n", selNum);

printf("문자를 입력하시오(127byte)\n");

scanf( "%s", &strContent );

printf(" 입력한 문자는  [%s]\n", strContent);

return 0;

}


입력할 때 127byte를 넘기면 데이터가 깨지거나 알 수 없는 문자가 입력 될 수 있으니 127바이트에 맞춰서 입력하길 바랍다.


scanf 로 동시에 2개이상 입력 받기




다음과 같이 동시에 2개의 입력 값을 받을 수 있다.


scanf( "%d %s", &selNum, &strContent );


입력 할 때 데이터의 경계를 공백(스페이스바, tab키, enter) 으로 구분한다.

그러니 숫자를 입력 후 공백(스페이스바, tab키, enter)을 입력 후 문자를 입력 하면 된다.


다음 예제를 통해 확인해보자.


#include <stdio.h>

#include <stdlib.h>


int main(int argc, char *argv[]) 

{

int selNum = 0;

int strContent[128] = {0,};

printf("숫자와 문자를 입력하시오\n");

scanf( "%d %s", &selNum, &strContent );

printf(" 입력한 숫자는  [%d]\n", selNum);

printf(" 입력한 문자는  [%s]\n", strContent);

return 0;

}




scanf 사용시 변수 앞에 &는 무엇인가?


scanf를 사용시 아래 처럼 변수 앞에 &를 넣는데 


scanf( "%d %s", &selNum, &strContent );


결론 부터 말하면 &은 변수의 주소이다.

주소라 하면 변수가 하나 할당 되면 메모리 어딘가에 할당이 되는데 해당 메모리의 위치를 표시한다고 생각 하면 된다.

우선 이정도만 알아두고 다음에 포인트 설명 때 자세히 하도록 하겠다.


반응형

'프로그램 > C' 카테고리의 다른 글

[C] while, do~while 반목문 사용법  (0) 2017.03.13
[C] 비트(bit) 단위 연산  (0) 2017.03.12
[C] 출력 함수 printf 사용법  (0) 2017.03.09
[C] 증감 연산자  (0) 2017.03.08
[C] 연산자  (0) 2017.03.07

+ Recent posts