[자바 강좌] 4. 형 변환, 연산자
2017/04/03 - [Java/Java [ 기초 강좌 ]] - [자바 강좌] 1. 자바 개발 환경 구축
2017/04/03 - [Java/Java [ 기초 강좌 ]] - [자바 강좌] 2. 이클립스 화면 구성, 프로젝트, 패키지, 클래스
2017/11/16 - [Java/Java [ 기초 강좌 ]] - [자바 강좌] 3. 코딩 방법, 변수, 형
형 변환
형 변환은 서로 상속된 클래스들을 타입으로 사용한 변수일 경우 형 변환이 가능하다. 예시를 들자면 실수형인 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; i += 5; | cs |
위의 예시는 i가 10이고, 2번째 줄에서 += 대입 연산자를 이용해 10에 5를 더한 후 i에 대입한다.
따라서 i의 값은 15이다.
증감 연산자
증감 연산자는 ++, --로 총 2개의 연산자이다.
++는 좌측의 값에 1을 더한 후 좌측에 대입한다.
--는 좌측의 값에 1을 뺀 후 좌측에 대입한다.
1 2 | int i = 10; i ++; | 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이 된다.
비트 논리 연산자, 비트 이동 연산자
비트 논리 나 비트 이동 연산자는 암호화 파트가 아니라면 거의 사용하지 않으므로 다음에 알아본다.
'Java > Java [ 기초 강좌 ]' 카테고리의 다른 글
[자바 강좌] 3. 코딩 방법, 변수, 형 (0) | 2017.11.16 |
---|---|
[자바 강좌] 2. 이클립스 화면 구성, 프로젝트, 패키지, 클래스 (0) | 2017.04.03 |
[자바 강좌] 1. 자바 개발 환경 구축 (2) | 2017.04.03 |