[관계연산자]------------------------------------------


<

>

==  둘이 같은가?  :  같으면 참

!=   둘이 서로 다른가?  : 다르면 참

<=

>=


[논리연산자]------------------------------------------


&&  A,B모두 참이면 연산결과는 참으로 반환한다 (논리 AND)

||   A.B둘중 하나라도 참이면 연산결과로는 참을 반환 (논리 OR)

!      예를들어서 !C 이면 C가 참이면 거짓을 반환 거짓이면 참을 반환하는 형태 즉, 논리 NOT


[비트연산자]


대상으로 하는 자료를 비트단위로 생각하고 연산을 실시한다.


&          비트단위로 AND연산

|           비트단위로 OR 연산

^           비트단위로 XOR연산

~          단항 연산자로써, 모든 비트를 반전시킴

<<         비트열을 왼쪽으로 이동시킴

>>         비트열을 오른쪽으로 이동시킴



[음수의 표현법]------------------------------------------


1의 보수를 취한다 -> 1을 더한다.



[기본적인 반복문의 형태: While문]------------------------------------------


While(조건)

{

내용;  //내용실행후 조건으로 다시 이동후, 조건이 부정되지 않으면 중괄호 내용 다시 실행

}



while(조건1)

{


   내용1;


while(조건2)

{

  내용2;   //일단 내용1을 1번 실행후 조건2가 부정될때까지 내용2를 실행후 다시 조건1로 회귀.

}

}


do

{

 내용; // 일단 do 실행. 그 후 while 조건을 검토후 조건이 부정되지 않으면 다시 do실행.

}while(조건);  // 세미콜론 주의.


do~while 과 while문은 실제로 서로 대체가 가능한 문법이다. 

하지만 눈에 보이는 전달력의 차이로 꼭 1번 실행이 필요하다면 do~while로 표현하는것이 가독성을 위해서 추천한다.




[For 문의 형태]------------------------------------------


for( 초기식 ; 조건식 ; 증감식)

{

 내용;

}


으로 이루어져 있으면, 초기식은 변수의 선언 및 초기화, 조건식은 선언된 초기식조건을 이용하여 검사 (부정이면 반복중단), 증감식은 내용을 실행후 다시 조건식을 검사하였을 때, 조건식이 부정되지 않으면 조건의 변수를 증가시킴. 


예를들면,


for( int i=1; i<5; i++)

{

  printf("good"); //4번의 good이 결과 출력된다.

}



[조건문의 형태]------------------------------------------


if(조건)

{
내용; // 조건이 참이면 아래 중괄호의 내용을 실행한다.

}



if(조건)

{

  내용1;  //조건이 참이면 내용1을 실행, 아니라면 내용2를 실행

}

else

{

  내용2;

}




if(조건1)

{

  내용1;  //조건1을 검사하여 참이면 내용1 아니라면, 다시 조건2를 검사 맞으면 내용2, 그밖에 조건이면 else문 실행

}          //만약 조건1이 만족하면 그밖의 else if, else는 건너뛴다.

else if(조건2)

{

 내용2;

}

else

{

내용3;

}



if(조건1)

{

내용1; //조건1,2,3중에서 만족하는 조건만 실행, 그밖의 조건과 실행이라는건 없음.

}       // 만약 조건1이 만족하면 내용1을 실행시키지만, 조건2,3도 if문이라서 다시 조건검사를 한다. 건너뛰지 않는다.

if(조건2)

{

내용2;

}

if(조건3)

{
내용3;

}



*삼항 연산자의 경우*

이는 if~else문을 대체 할수가 있다.


(조건) ? (A) : (B);


해석) 조건이 참이면 A를 반환, 거짓이면 B를 반환하라.



[반복문의 탈출]------------------------------------------


break문은 가장 가까운 중괄호의 반복문 한개를 빠져나오게 하는 명령이다. (단 하나만!)

continue문은 반복문의 조건검사로 즉시 이동하라는 명령이다. 즉 continue 뒤의 문장은 실행하지 않는다.


[선택문]------------------------------------------

switch(입력받은수)

{

 case 1:

         내용1;

         break;

 case 2:

         내용2;

         break;

 case 3:

         내용3;

         break;

 default:

         내용4;

}


입력받은수가 1~4까지라고 할때, 해당하는 수에 맞는 case문을 실행한다.

만약 break; 가 없다면 다음 case문도 실행된다.


If~ else 문과 switch 문은 서로 유사하지만 분기가 많고 복잡하다면 주로 switch문을 이용하는것이 좋다.




[함수의 형태]------------------------------------------



반환형태 함수이름 (입력형태)

{


함수의 몸체;


}


*이름이 같을때, 우선순위

지역변수 > 전역변수



Void 재귀(void)

{


printf("재호출=n");

재귀();

}

// 재귀함수는 함수가 호출되면 복사본을 만들어서 실행되는 구조라고 이해하자. 즉, 계속 호출될때마다 원본은 나두고 계속 복사본을 만들어서 실행하는 것이다. 


재귀 함수의 디자인사례)


#include <stdio.h>


int Factorial(int n)

{

if(n==0)

return 1;

else

return n * Factorial(n-1);

}


int main(void)

{

printf("1! = %d \n", Factorial(1));

printf("1! = %d \n", Factorial(2));

printf("1! = %d \n", Factorial(3));

printf("1! = %d \n", Factorial(4));

return 0;

}

//결과 1! = 1   2! = 2  3! = 6  4! = 24 




+ Recent posts