논리값(true/false)을 반대로 바꾸는 연산자
->결과도 논리값으로 나온다.
boolean b1 = !(5 > 3); // true -> false
++ : 변수에 담긴 값을 1증가시켜주는 연산자
-- : 변수에 담긴 값을 1감소시켜주는 연산자
* (증감연산)변수 : 전위연산 -> "선증감" 후처리
* 변수(증감연산) : 후위연산 -> 선처리 "후증감"
System.out.println(num1++);// 0(1)
System.out.println(++num1);// 2(2)
System.out.println(num1--);// 2(1)
System.out.println(++num1);// 2(2)
System.out.println(++num1);// 3(3)
System.out.println(num1++);// 3(4)
System.out.println(num1--);// 4(3)
System.out.println(--num1);// 2(2)
System.out.println(--num1);// 1(1)
+ - * / %
산술연산자와 대입연사자를 결합해서 사용할 수 있다.
+= /+ -= *= %=
int a = 5;
int b = 10;
int c = (++a) + b; //a = 6 , b = 10, c = 16
int d = 16 / 6; // d = 2
int e = c % a; // e = 4
int f = e++; // f = 4, e = 5
int g = (--b) + (d--); // b = 9, d = 2(1), g = 11
int h = 2; // a=6, b=9, c=16, d=1, e=5, f=4, g=11, h=2
int i = (a++) + b / (--c / f) * (g-- - d) % (++e + h);
// 6 + 9 / (15 / 4) * (11 - 1) % (6 + 2);
// 6 + 9 / 3 * 10 % 8
// 6 + 3 * 10 % 8
// 6 + 30 % 8
// 6 + 6
// 12
비교연산자
-두값을 비교하는 연산자
-비교연산자는 조건을 만족하면 true(참), 만족하지 않으면 false(거짓)를 반환
즉, 비교연산의 결과는 논리값
대소비교연산 : < , > , <= , >=
동등비교연산 : == , !=
String(문자열)은 단순하게 ==로 동등비교할 수 없다.
참조변수(객체를 담는 변수) 이기 때문이다.
String 비교시에는
문자열.equals(문자열);
두개의 논리값을 연산해주는 연산자
논리연산한 결과도 논리값이 된다.
* 논리값 && 논리값 : 왼쪽, 오른쪽에 두 논리값이 모두 true일 때만 결과가 true 이다.
* 논리값 || 논리값 : 왼쪽, 오른쪽 두 값중 하나라도 true라면 결과는 true가 된 다.
&&
- true && ture -> true;
- true && false -> false;
- false && ture -> false;
- false && false -> false;
- => 앞의 결과가 false일 경우 뒤의 조건은 굳이 실행하지 않는다.
||
- true || ture -> true;
- true || false -> true;
- false || ture -> ture;
- false || false -> false;
- => 앞의 결과가 true일 경우 뒤의 조건은 굳이 실행하지 않아도 된다.
조건식 ? 조건식이 참일경우 결과값 : 조건식이 거짓일 경우 결과값
* 이때, 조건식은 반드시 true 또는 false가 나오는 논리값이여야한다.
* 주로 비교, 논리연산자를 통해서 작성