조건문
if, else if, else
구문
if(조건문)
{
구문 ;
}
-> 조건문이 참이면 구문을 실행
if(조건문1)
{
구문1 ;
} else if ( 조건문2 )
{
구문2 ;
} else if ( 조건문3 )
{
구문3 ;
}
.
.
.
-> if 조건문 1이 참이면 구문 1을 실행 이후 나머지 무시( 해당 if 구문 종료)
-> 조건문이 거짓이면 그 아래 else if 조건문 참/ 거짓 구분
-> 어느 조건이 참이면 나머지 무시(해당 if 구문 종료) 또한 어떠한 조건문도 참이 아닐 시 해당 구문 종료
if(조건문 1)
{
구문 1 ;
} else if (조건문 2)
{
구문 2 ;
}
.
.
.
else if (조건문 n)
{
구문 n ;
} else
{
구문(end) ;
}
-> 모든 조건문이 거짓일 때 else 의 구문(end) 실행 이후 if 구문 종료
switch case
구문
switch (조건)
{
case [1] :
구문 1 ;
case [2] :
구문 2 ;
.
.
.
}
-> switch 의 조건를 위에서부터 case 별로 비교하여 만족하는 각 case [n]의 구문을 실행한다. ( 조건과 [n]의 n 모두 정수를 사용해야 한다.
-> 모든 case가 조건에 부합하지 않을 시 switch 문을 종료한다.
switch (조건)
{
case [1] :
구문 1 ;
break ;
case [2] :
구문 2 ;
break ;
.
.
.
default :
구문(end)
}
-> 구문이 실행되면 해당 케이스 내의 break가 switch 문을 종료시킨다.
-> 구문이 실행 되었는데 해당 케이스 내에 break 가 없다면 다음 case로 넘어간다. ( 이렇게 break 가 없어서 연속으로 조건을 비교하는 과정을 거칠때 case를 묶는다고 말한다.)
-> 모든 case 가 조건과 부합하지 않느다면 default 의 구문을 실행하고 switch 문을 종료한다.
연산자
- 대입연산자
int 변수 = 값;
에서 ' = ' 에 해당
- 산술연산자
+, -, *(곱), /(나눗셈의 몫), %(나눗셈의 나머지)
- 비교연산자
== (같다), != (다르다), <, >, <=, >=
- 증감연산자
++, -- (변수의 앞이나 뒤에 오며 해당 변수에 대해 1을 더하거나 뺀다) ( 후위 증감연산자는 모든 연산자 중에서 가장 순위가 낮다. 반면 전위 증감 연산자는 가장 순위가 높다.)
- 논리 연산자
(조건) || (조건) : or , 두 조건 중에서 하나만 참이어도 참을 반환, 좌측 조건부터 연산하므로 좌측 조건이 참이면 우측조건 연산 하지 않음.
(조건) && (조건) : and, 두 조건 모두 참이어야 참을 반환( 하나만 거짓이어도 거짓을 반환). 좌측 조건부터 연산하므로 촤즉조건이 거짓이면 우측 조건 연산하지 않음.
!(조건) : 조건을 반전시킴. (* 0을 반전시키면 1)
- 복합 대입연산자
+=, -=, *=, /=, %=, &=, ^=, |= : (A += B) == ( A = A + B ), (나머지 복합 대입연산자 구조도 이와 동일)
- 비트 연산자
>>, << ( 왼쪽으로 비트를 미는 경우, 전체적으로 왼쪽으로 n 칸씩 옮기고 우측을 0으로 채운다. 최좌측에 있다가 밀린 비트는 삭제) : 특정방향으로 비트를 민다.
~ : 1의 보수(전 비트를 반전 시킨다).
& : 비트곱, 각 비트의 자리끼리 && 연산을 진행한다.
| : 비트합.
^ : 비트 XOR ( 같으면 0, 다르면 1)
(* 비트 연산자 사용 예시: 하 캐릭터의 여러 중첩된 상태에 대해서 하나의 변수의 각 비트에 그 상태를 기록해 놓을 수 있는 경우. 이때 전처리기 사용: 16진수로 비트의 위치를 정함)
(* 전처리기예시 : # define Att = 0x01; )
(* 비트 합으로 상태를 비트에 저장, 비트 곱으로 상태 여부를 확인.)
(* 상태 변수에서 특정 비트를 빼는 방법 : CharState &= ~ATT. (이때 CharState는 상태를 비트에 저장하는 변수, ATT 는 변수의 한 비트 자리를 사용할 상태))
* 주의점
- 자료형은 보통 전처리기로 처리하지 않는다. 빌드 과정에서 문제가 생길 수 있기 때문. ( #define INT int (x) / typedof int MYTYPE (o))
- 연산자 사이에는 우선 순위가 존재한다.
- 중단점은 해당 줄의 직전의 상태까지를 실행 시킨다.( 이후 f10 으로 해당 줄까지 실행)
- 정수의 나눗셈에서는 몫과 나머지가 존재하지만 실수의 나눗셈에서는 몫만이 존재한다.( 실수 자료형에서는 %연산자를 사용할 수 없다)
- 런타임 오류가 없게 하는 것이 좋다.
- 자료형 bool(1byte)는 0또는 1만 저장된다.