1) ! 논리부정(반대)연산자 (단항연산자 == 하나의 값을 가지고 연산)
* => 논리값 ( true/false)을 반대로 바꾸는 연산자
* => 논리값을 가지고 연산을 하고 결과마저도 논리값
System.out.println("true의 반대 : "+ !true); //false
System.out.println("false의 반대 : "+ !false); //true
2) * 증감연산자 (단항연산자)
* ++ : 변수에 담겨있는 값을 1 증가시켜주는 연산자
* ++변수 / 변수++
* -- : 변수에 담긴 값을 1 감소 시켜주는 연산자
* --변수 / 변수--
*
*(증감연산자)변수 : 전위연산 => "선증감" 후처리
*변수(증감연산자) : 후위연산 => 선처리 "후증감"
*
public void method1() {
//전위 연산 테스트
int num1 = 10;
System.out.println("전위연산 적용전 num1의 값 : " + num1); //10
System.out.println("1회 수행 후 결과 : " + ++num1);//11
System.out.println("2회 수행 후 결과 : "+ ++num1); // 12
System.out.println("3회 수행 후 결과 : "+ ++num1); //13
System.out.println("최종 num1의 값 : " + num1); //13
//후위 연산 테스트
int num2 = 10;
System.out.println("\n후위연산 적용전 num2의 값 : " + num2); //10
System.out.println("1회 수행 후 결과 : " + num2++); //num2 = 10이 출력이 되고 11로 증가
System.out.println("2회 수행 후 결과 : "+ num2++); //num2= 11 출력 후 12로 증가
System.out.println("3회 수행 후 결과 : "+ num2++); //num2 = 12 출력 후 13으로 증가
System.out.println("최종 num2의 값 : "+ num2 ); // 13
3) 산술연산자 (이항연산자 == 두개의 값을 가지고 연산)
* +,-,*,/(몫),%(나머지값)
* (우선순위) *,/,% > +,-
public void method1() {
int num1 = 10;
int num2 = 3;
System.out.println("num1 + num2 = "+ (num1+num2));// 문자열 덧셈으로 연결 되기 전 숫자연산 먼저되도록 괄호치기
System.out.println("num1 - num2 = "+ (num1-num2));// 문자열간의 뺄셈불가로 빨간줄 괄호쳐서 숫자연산먼저되도록
System.out.println("num1 x num2 = "+ (num1 * num2));
System.out.println("num1 / num2 = "+ (num1/num2)); // 나눗셈 연산시 분모가 0일 수 없음
System.out.println("num1 % num2 = "+ (num1%num2));
// 값 % 2 == 0 라는 것은 짝수
// 값 % 2 == 1 라는 것은 홀수
// 값 % 5 == 0 라는 것은 5의 배수라는 소리
4) 비교연산자/ 관계연산자 (이항연산자)
* 두 값을 비교하는 연산자
비교 후에 조건을 만족하면 true, 만족하지 않으면 false을 반환
=> 결과값은 논리값 !
* 대소비교연산자 : < > <= >=
* 동등비교연산자 : == !=
int a = 10;
int b = 25;
System.out.println("a == b : " + (a == b));
System.out.println("a <= b : " + (a <= b));
boolean result = a > b ;
System.out.println("result = " + result);
System.out.println(a *2 > b/ 5); // 산술연산자가 우선순위
System.out.println("a가 짝수인가: " + (a%2 == 0)); // true
System.out.println("a가 홀수인가: " + !(a%2 == 0)); //false
System.out.println("a가 홀수인가: " + (a%2 != 0)); //false
System.out.println("a가 홀수인가: " + (a%2 == 1)); //false
5)논리 연산자 (이항 연산자)
* 두개의 논리값을 연산해주는 연산자
* 결과값도 논리값!
* 논리값 && (and) 논리값 : 왼쪽과 오른쪽 둘다 true일경우 결과값 true
* 논리값 || (or) 논리값 : 왼쪽, 오른쪽 둘중에 하나라도 true일경우 결과값 true
* => 주로 여러개의 조건들을 연결시켜 하나의 조건으로 만들고자할때 사용
&& (AND) : 두 개의 조건이 모두 true여야 결과값이 true(~이고, 그리고, ~이면서,뿐만아니라)
* true && true => true
* true && false => false
* false && true => false
* false && false => false
*
* >> && 연산자를 기준으로 앞의 결과가 false일 경우 뒤쪽의 조건검사는 굳이 실행되지 않음!
*
* ||(OR) : 두 개의 조건 중 하나라도 true일 경우 결과값이 true (~이거나, 또는 )
*
* true || true => true
* true || false => true
* false || true => true
* false || false => false
*
* >> || 연산자를 기준으로 앞의 결과가 true일 경우 뒤쪽의 조건검사는 굳이 실행되지 않음 !
*
public void method5() {
int num = 10;
boolean result1 = (num < 5) && (++num > 0);
System.out.println("result1 : "+ result1); //false
System.out.println("&& 연산 후의 num : "+ num); //10 -> &&연산에 앞 결과가 false일경우 뒤쪽 조건검사 실행X
boolean result2 = true || (++num > 0); //Dead code (불필요한 코드)
System.out.println("result2 : "+ result2); // true
System.out.println("|| 연산 후의 num : "+ num); // 1- -> ||연산 앞 결과가 true일경우 뒤쪽 조건검사 실행X
6)삼항연산자 (항목 3개를 가지고 연산해주는 연산자)
* [표현법]
* 조건식(true/false) ? 조건식이 true인 경우 돌려줄 결과값 : 조건식이 false일경우 돌려줄 결과값
* 조건식 => 반드시 true/ false가 나오도록 작성
주로 비교/ 논리연산자를 이용해서 작성
public void method1() {
//사용자에게 입력받은 정수 값이 양수인지 아닌지 판별 후 출력
Scanner sc = new Scanner(System.in);
System.out.print("정수 값 입력 : ");
int num = sc.nextInt();
//num > 0 ? 참일경우 돌려줄 결과값 : 거짓일경우 돌려줄 결과값
String result = num > 0 ? "양수이다." : "양수가 아니다.";
// 사용자가 입력한 XX(은)(는) xxxxxxxxxxx
System.out.printf("사용자가 입력한 %d는 %s", num,result);
7) 복합대입연산자
* 산술연산자와 대입연산자가 결합되어있는 형태
+= -= *= /= %=
* a = a + 3; => a += 3;
* a = a - 3; => a -= 3;
* a = a * 3; => a *= 3;
* a = a / 3; => a /= 3;
* a = a % 3; => a %= 3;
//===== 특이케이스 =======
String str = "Hello";
//str = str + "World";
str += "World"; //문자열은 + 연산만 가능
System.out.println(str);// HelloWorld
'JAVA' 카테고리의 다른 글
2_4 Cast(형변환)_ 자동형변환과 강제형변환 (0) | 2022.10.18 |
---|---|
2_3 Printf (0) | 2022.10.18 |
2_2 Scanner (0) | 2022.10.14 |
2_1. 변수 (0) | 2022.10.14 |
Scanner 사용법과 오류 (0) | 2022.10.14 |