Published 2022. 10. 17. 17:46

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
복사했습니다!