📌 연산자의 시작
+, -, *, /와 같이 계산을 수행하는 기호를 연산자라 한다.
- 실무에서 자주 쓰는 기준으로 설명한다.
📌 산술 연산자
+ (더하기): x + y 꼴에서 x와 y의 덥셈이다.
- (빼기): x - y 꼴에서 x와 y의 뺄셈이다.
* (곱하기): x * y 꼴에서 x와 y의 곱이다.
/ (나누기): x / y 꼴에서 x를 y로 나눈 몫이다.
% (나머지): x % y 꼴에서 x를 y로 나눈 나머지이다.
- 예)
int a = 5;
int b = 2;
a+b = 7;
a-b = 3;
a*b = 10;
a/b = 2;
a%b = 1;
- 자바에서 같은
int형끼리 계산하면 결과도 같은 int형을 사용하기 때문에 a/b는 몫이 2 나머지가 1이기때문에 소수점을 이하를 포함하지 않는 int형의 결과값이 나온다.
주의! 0으로 나누기
5/0과 같이 숫자는 0으로 나눌수 없다.(수학에서 허용치 않음) 이경우 프로그램에 오류가 발생한다!
📌증감 연산자
++와 --로 표현되며, 이들은 변수의 값을 1만큼 증가시키거나 감소시킨다.
- EX)
int a = 3;
a++; // a = a+1과 같으므로 4
a--; // a = a-1과 같으므로 3
📌전위, 후위 증감 연산자
- 증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.
++a: 증감 연산자를 피연산자 앞에 둘 수 있다고 해서 전위 증감 연산자라고 한다. 변수를 사용하기전에 증감을 하고 변수를 사용한다.
a++: 증감 연산자를 피연산자 뒤에 둘 수 있다고 해서 후위 연산자라 한다. 변수를 사용하고 증감을 한다.
- EX)
int a = 1;
int b = 0;
b = ++a; //a의 값을 먼저 증가시키고, 그 결과를 b에 대입
a = 1;
b = 0;
b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a의 값을 증가시킨다.
📌비교 연산자
- 두 값을 비교하는데 사용한다. 주로 조건문과 함께 사용한다.
관계 미만(<): (좌 → 우) x < y 꼴에서 x가 y 미만인가에 대한 여부이다.
관계 초과(>): (좌 → 우) x > y 꼴에서 x가 y 초과인가에 대한 여부이다.
관계 이하(<=): (좌 → 우) x <= y 꼴에서 x가 y 이하인가에 대한 여부이다.
관계 이상(>=): (좌 → 우) x >= y 꼴에서 x가 y 이상인가에 대한 여부이다.
관계 동등(==): (좌 → 우) x == y 꼴에서 x와 y의 (스택) 값이 같은가에 대한 여부이다.
관계 부등(!=): (좌 → 우) x != y 꼴에서 x와 y의 (스택) 값이 다른가에 대한 여부이다.(!는 반대라는 뜻이다)
- 비교 연산자를 사용하면 참(
true)또는 거짓(false)라는 결과값이 나온다.
- 여기서 주의해야 할점은
=와 ==은 다르다는 점이다.
=: 대입연산자 변수에 값을 대입한다.
==: 동등한지 확인하는 비교 연산자
- EX)
int a = 2;
int b = 3;
a == b; //false 같지 않다.
a != b; //true 값이 다르기때문
a > b; //false a는 b보다 크지 않다
a < b; //true a는 b보다 작다
a >= b; //false a는 b보다 크거나 같지 않다.
a <= b; //true a는 b보다 작거나 같다.
📌 문자열 비교
- 문자열이 같은지 비교할려면
==이 아닌 .equals()메서드를 사용한다.
String str1 = "문자열1`";
String str2 = "문자열2`";
boolean result1 = str1.equals(str2);//false 문자열 변수 비교
boolean result2 = str1.equals("문자열1")//true 문자열 변수, 리터럴 비교
📌 논리 연산자
- 논리 연산자는
boolean형인 true,false를 비교하는데 사용한다.
&&(그리고): 두 피연산자가 모두 참이면 참을 반환, 둘중 하나라도 거짓이면 거짓 반환
||(또는): 두 피연산자 중 하나라도 참이면 참을 반환, 둘다 거짓이면 거짓을 반환
!(부정):피연산자의 논리적 부정을 반환, 즉, 참이면 거짓을, 거짓이면 참을 반환
System.out.print(true && false); //false
System.out.print(true || false); //true
System.out.print(!true); //false
int a = 15;
boolean result = a > 10 && a< 20; // (a>10)(true) && (a<20)(true)
result = true;
📌 축약(복합) 대입 연산자
- 산술 연산자와 대입 연산자를 한번에 축약해서 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라 한다.
+= -> i = i+3 -> i +=3
-= -> i = i-3 -> i -=3
*= -> i = i*3 -> i *=3
/= -> i = i/3 -> i /=3
%= -> i = i%3 -> i %=3
- 연산과 대입을 한번에 축약해서 처리한다.