티거의 개발 공간



형 변환


형 변환은 서로 상속된 클래스들을 타입으로 사용한 변수일 경우 형 변환이 가능하다. 예시를 들자면 실수형인 double과 float를 예시로 들 수 있다.

형 변환은 아래와 같이 가능하다.


1
2
float f = 1.0f;
double d = (double) f;
cs


float값을 double로 변환하여 변수로 저장시킨 것인데 2번째 줄이 형 변환 코드이다.

형식은 아래와 같다.


1
type1 value2 = (type1) value1;
cs


연산자


연산자는 크게 산술, 부호, 문자열, 비교, 논리, 비트 논리, 비트 이동, 대입, 증감, 삼항 연산자로 나뉜다.


산술 연산자


산술 연산자는 -,+,*,/,% 으로 총 5개의 연산자이며, 기본적인 사칙연산을 수행한다.


-는 뺄셈 연산

+는 덧셈 연산

*는 곱셈 연산

/는 나눗셈 연산

%는 나눗셈 후 나머지 연산


1
int i = 10 / 5;
cs


위처럼 나눗셈 연산 후 i에 대입이 가능하다.


부호 연산자


부호 연산자는 -와 +로 총 2개의 연산자이며, 실수의 부호를 결정하는데 사용한다.


1
2
int i = 20;
int d = -i; //d = -20
cs


위처럼 i는 양수 20을 대입하고 d는 i에 - 연산자를 사용하여 -20을 대입한다.


문자열 연산자


문자열 연산자는 +로 단 한개 뿐이다. 이 문자열 연산자는 두 개의 문자열을 이어 붙이는데 사용한다.


1
String name = "Hello, " + "World!";
cs


위처럼 두 개의 문자열을 +로 이어 붙여 name에 대입할 수 있다.


비교 연산자


비교 연산자는 ==, !=, >, >=, <, <= 로 총 6개의 연산자이며, 두 개의 값을 비교할 때 사용된다.


==는 비교 대상 둘이 같으면 true, 다르면 false를 반환하고

!=는 비교 대상 둘이 다르면 true, 같으면 false를 반환한다.

> 는 연산자의 좌측에 있는 값이 우측의 값보다 더 크다면 true, 더 작다면 false를 반환,

>= 는 연산자의 좌측에 있는 값이 우측의 값보다 더 크거나 같다면 true, 더 작다면 false를 반환한다.

< 는 연산자의 우측에 있는 값이 좌측의 값보다 더 크다면 true, 더 작다면 false를 반환,

<= 는 연산자의 우측에 있는 값이 좌측의 값보다 더 크거나 같다면 true, 더 작다면 false를 반환한다.


여기서 주의해야할 점은 ==나 !=는 실수형이 아닌 다른 모든 값들을 비교할 수 있지만

부등호인 >, >=, <, <= 는 실수형에서만 사용이 가능한 대소 비교 연산자들이다.


1
2
3
int i = 10;
int d = 5;
boolean bool = i > d;
cs


위의 예시는 i가 10이고 d가 5인 상태에서 i > d 는 참이므로 true를 반환한다.

따라서 bool의 값은 true이다.


논리 연산자


논리 연산자는 &&, &, ||, |, ^, ! 로 총 6개의 연산자이며, 두 개의 논리형을 구별한다.


&&와 &은 좌측과 우측에 있는 피연산자들이 모두 true일 경우에만 true를 반환하고 두 연산자의 역할은 같다.

||와 |은 좌측과 우측에 있는 피연산자들중 하나 이상이 true일 경우에만 true를 반환하고 두 연산자의 역할은 같다.

^ 는 좌측과 우측에 있는 두 피연산자의 논리가 반대여야 true를 반환한다.

! 는 논리 부정으로 뒤에 오는 피연산자의 논리의 반대 논리를 반환한다.


1
2
3
int i = 10;
int d = 5;
boolean bool = (i > d) ^ (i < d);
cs


위의 예시는 i가 10이고 d는 5이다. 이때 i > d는 참이므로 true, i < d 는 거짓이므로 false이다.

이때 논리 연산자인 ^으로 좌측과 우측 두 피연산자의 논리가 반대이므로 bool 은 true가 된다.


대입 연산자


대입 연산자는 =, +=, -=, *=, /=, %=, &=, !=, ^=, <<=, >>=, >>>= 로 총 12개의 연산자이다.


=는 우측의 값을 좌측에 대입한다.

+=는 우측의 값을 좌측의 값에 더한 후 좌측에 대입한다.

-=는 우측의 값을 좌측의 값에 뺀 후 좌측에 대입한다.

*=는 우측의 값을 좌측의 값에 곱한 후 좌측에 대입한다.

/=는 우측의 값을 좌측의 값에 나눈 후 좌측에 대입한다.

%=는 우측의 값을 좌측의 값에 나눈 후 나머지를 좌측에 대입한다.


아래는 비트 논리나 비트 이동에 사용되는 연산자이다.

(해당 강좌에서는 주로 다루지 않음.)


&=는 우측의 값을 좌측의 값에 & 연산을 실행 후 결과를 좌측에 대입한다.

!=는 우측의 값을 좌측의 값에 ! 연산을 실행 후 결과를 좌측에 대입한다.

^=는 우측의 값을 좌측의 값에 = 연산을 실행 후 결과를 좌측에 대입한다.

<<= 는 우측의 값을 좌측의 값에 << 연산을 실행 후 결과를 좌측에 대입한다.

>>= 는 우측의 값을 좌측의 값에 >> 연산을 실행 후 결과를 좌측에 대입한다.

>>>= 는 우측의 값을 좌측의 값에 >>> 연산을 실행 후 결과를 좌측에 대입한다.


1
2
int i = 10;
+= 5;
cs


위의 예시는 i가 10이고, 2번째 줄에서 += 대입 연산자를 이용해 10에 5를 더한 후 i에 대입한다.

따라서 i의 값은 15이다.


증감 연산자


증감 연산자는 ++, --로 총 2개의 연산자이다.


++는 좌측의 값에 1을 더한 후 좌측에 대입한다.

--는 좌측의 값에 1을 뺀 후 좌측에 대입한다.


1
2
int i = 10;
++;
cs


위의 예시는 i가 10이고, 2번째 줄에서 ++ 증감 연산자를 이용해 10에 1을 더한 후 i에 대입한다.

따라서 i의 값은 11이다.


삼항 연산자


삼항 연산자는 [ 조건식 ? 값1 : 값2 ] 라는 형식으로 조건식에 따라 반환되는 값이 다른 연산자이다.


[ 조건식 ? 값1 : 값2 ] 는 조건식이 true면 값1을 반환하고 false면 값2를 반환한다.


1
2
3
int i = 10;
int d = 5;
int result = (i > d) ? i : d;
cs


위의 예시는 i가 10이고 d가 5이다. 이 때 삼항 연산자의 조건식인 i > d는 참이므로 true이고 그에 따라서 i의 값이 반환된다.

따라서 result는 i의 값인 10이 된다.


비트 논리 연산자, 비트 이동 연산자


비트 논리 나 비트 이동 연산자는 암호화 파트가 아니라면 거의 사용하지 않으므로 다음에 알아본다.