카테고리 없음

[Java] Operator(연산자)(1)__개발공부 3일차-4

하체는 스쿼트 2022. 2. 19. 19:17
연산자/ 피연산자

 

 

연산자(Operator)란?

연산을 수행하는 기호 + ; , () {} 등등

 

피연산자(operand)란?

연산자의 작업 대상(변수, 상수, 리터럴, 수식)이다.

 

 

 

 

연산자의 종류

 

 

연산자는 '기능' 또는 '피연산자의 갯수'로 종류를 분류한다.

 

[기능] 기준으로 분류
ㄱ. 산술 연산자             +      -      *      /  
ㄴ. 비교 연산자
ㄷ. 논리 연산자              !부정(not)연산자
         1)일반논리연산자 :       !       &&        || 
         2)비트논리연산자 :       ~       &          |      ^
ㄹ. 대입 연산자
ㅁ. 기타
ㅂ.쉬프트 연산자    >>    <<    >>>


[피연산자의 갯수]로 분류                              --> 항의 개수로 분류한다는 의미
ㄱ.단항 연산자                         항1      or      !항
ㄴ.이항 연산자                              항1 + 항2                       
ㄷ.삼항 연산자

 

 

 

산술연산자

 

+   -     *
int x = 3;
System.out.println(  x + 5  );                                 // 덧셈 연산자      8
System.out.println(  x - 5  );                                  // 뺼셈 연산자     -2
System.out.println(  x * 5  );                                  // 곱셈 연산자     15

 

(주의)    /    % 
System.out.println(  x / 5  );                                  // 나눗셈 연산자   0                               int/int = int 정수
System.out.println(  x % 5  );                                 // 나머지 연산자   0                               int/int = int 정수

 

 

System.out.println(  정수 / 0  );                              // ArithmeticException Err(산술적예외 오류) 발생

System.out.println(  실수 / 0  );                              // Infinity 무한대 리터럴

System.out.println(  (정수 or 실수) % 0  );                 // NaN == Not a Number

 

 

 

 

비교연산자

 

>   <   >=  >=    ==(같다)    !=(다르다)

결과는 true / false 같은 논리형으로 출력된다.

 

System.out.println( 3>5 );                                     //false
System.out.println( 3<5 );                                     //true
System.out.println( 3>=5 );                                   //false
System.out.println( 3<=5 );                                   //true

 

(주의)
1. 같다 비교 연산자 ==
System.out.println( 3==5 );                                   //false
System.out.println( 3!=5 );                                     //true

 


int x = 3;
System.out.println( x=5 ); // 이거Err안난다. = 이기 때문에 그냥 x에 5값을 할당한다는 의미로 받아들여진다.

!=                                   =!   위에 코딩처럼 완전히 다른 의미이다.

 

 

 

 

일반논리연산자

 

 

1)일반논리연산자:  !    &&     ||                                                     자바의 정석(p114)

ㄱ.  && 일반 논리 AND 연산자(논리곱)
             t && t -> t 피연산자 모두 true 일때만 true 결과이다.
             t && f -> f
             f && f -> f
             f && f -> f

 

ㄴ.  || 일반 논리 OR 연산자(논리합)
             t||t   ->t                1  | | 1 -> 1             피연산자 중에 하나만 true이면 true 결과이다.
             t||f   ->t                1      0     1
             f||t   ->t                0      1     1
             f||f   ->f                0      0     0

 

ㄷ.  ! 부정연산자 == not 연산자


참을 부정하면 거짓이되고
거짓을 부정하면 참이된다.
!true        -> false
!false       -> true

부정연산자 뒤에는 true 나 false가 와야 한다. int나 다른 타입의 자료형이 올수 없다.

 

System.out.println(5>3);                                      //true   자바의 정석 (p91 연산자 우선 순위)

 

System.out.println(!5>3);                //Err 뜬다.          !피연산자가 5int 정숫값이 왔기 때문이다.

 

***비교 연산자 보다 부정! 연산자 우선 순위가 높아서***

에러메세지 : The operator ! is undefined for the argument type(s) int

System.out.println(!(5>3));              // ()인 우선 연산자를 사용해줘서 우선순위를 바꿔주면 Err는 해결된다.

 

 

System.out.println(3>5 && 2>100);                  //---->false 출력
System.out.println(3<5 && 100>2);                  //---->true 출력