[java]연산자

2024. 8. 10. 14:35·JAVA

20240808수업

 

[연산자 - operator]


  피연산자(operand) 갯수에 따른 분류

  🐲 단항 연산자 - unary
    !, ~, . , ++, --

     a =  3;
     b = -a;   // 부호변환, 단항연산자
  
  🐲 이항 연산자 - binary
    정상문법)
    {a = 4;
    a = a - 1;}
    틀린 문법)
    {a = 4;
    a = a - ;}

  🐲 삼항연산자(조건연산자) - thrnary
     String result = (man == true)? "남자":"여자";
     String result = (man)? "남자":"여자"; '='을 생략가능

    x = (a>0)? true:false;
    if(a>0) 
      x  = true;
    else
      x = false;

    1)  if(man == true) 
          s = "남자";
       else
          s = "여자";

      if( man ) 
          s = "남자";
       else
          s = "여자";

     조건 연산자 -> if대체
     2) (man == true) ? s="남자" : s="여자" ;

     3)  s = (man == true) ? "남자" : "여자" ;
         
if n=0;
if(n>0)
  if(n>5)
    x=3;
들여쓰기 :indentation
-----------------------------------------------------------

   🐲 계산연산자(산술) - arithmatic
       0) ++, -- : 증감연산자 - 단항연산자

      a++  : 후행(postfix, suffix)연산자 : a = a + 1
      ++a  : 선행(prefix)연산자          : a = a + 1


       a  =  3           a  = 3
       b  =  a++         b  = ++a (코딩테스트 같은곳에서는 자제)
      …………………………………………………………………
       a  = 3            a  = 3   
       b  = a            a  = a + 1  
       a  = a + 1        b  = a

       a = 4             a = 4
       b = 3             b = 4
 
   1) *, /, %
   2) +, -  

----------------------------------------------------------------------
   🐲 비교연산자(관계) - relative
   값을 비교 - 결과  true / false 
   >    크다         (초과)
   <    작다         (미만)
   <=   작거나 같다  (이하)
   >=   크거나 같다  (이상) 

   ==   같다
   !=   같지않다

   "이이" > "이순신" : 문자열비교의미 ->순서(이이가 뒤에 나오기 때문에(국어맞춤법규정상) 숫자가 더큼)

※but)관계연산자:자바에서는 문자열 비교에 사용할 수 없음.(정수 실수만 비교가능∵데이터가 저장된 위치를 담기때문에 데이터 값을 비교하고자 할때는 특수 함수 사용)

  문자열 비교 : 함수 사용
  String name = "이순신"
  ==   ->  name.equals("이이") : true/false
   name.compareTo("이이")  : 결과가 숫자로 나옴.
   결과 :  0    (name == "이이")
          >0    (name  > "이이")
          <0    (name  < "이이")
    -1 = "AA".compareTo("AC");
    A A
    A B
    0 -2

   
   name = "ABC" 
      name.compareTo("AB")  :
    
   ABC
   AB
    
논리식- 1:true , 0:false
    
   a   !a
   0    1 
   1    0  
-----------------------------------
int       : 0    4byte
double: 0.0 8byte
  
0 == 0.0 -> type이 달라서 비교가 안된다
                     비교를 위해서 type을 강제로 변경
0.0 == 0.0 : true
자바스크립트 :
  0 == 0.0 : true 데이터를 비교
  0 === 0.0 : false데이터와 타입까지 비교

 

{비교를 위해 정수에서 실수로 변환하기}

자동변환) implict 암시적,묵시적: 0을 0.0으로 type 변환(
강제형변환) explicit 명시적:  (type) => casting 연산자
ex) (double) 0 == 0.0    
      >> 0.0  == 0.0

   
 범위비교
  0 ~ 100 사이
  0 <= x <= 100  -> error
    
  0 <= x&& x <= 100   
  논리 and (&&)

-------------------------------------------
       
🐲 논리연산자       - logical : 여러개의 조건을 동시 연결 수행
  boolean man = false
   if(man)
      "남자"
   else
     "여자"

   if(!man) 
      "여자"
   else
      "여자아님"

 1)  ! (not)
 2)  &&, & (and) - 두 조건 의 공통 부분 추출(교집합) -and
                   ~ 중에서, ~이고
&&:앞쪽 결과가 0(false)면 뒤쪽연산을 하지않고 결과를 0으로 만들어줌(곱셈으로 생각)->속도↑
&   :앞쪽 결과에 상관없이 뒤쪽연산을 하여 결과 출력
   ex)x=0, y=2
        z=x++ && ++y
        x=1,y=2,z=0

        x=0, y=2
        z=x++ & ++y
        x=1,y=3,z=0
       -><-java에서는 논리연산시 ++사용금지
 3)  ||, | (or)  - 두 조건의 합집합 - or
                   ~ 이거나, ~또는



부산 여자
        addr1 == "부산"
       &&     gender == '여'

 우선순위 : ! -> && -> || 
-------------------------------------------

🐲 비트연산자 (bit 연산자)-애플리케이션 개발에는 잘 쓰이지 않음.
    -  :모든 데이터 이진수로 변경하여 비트끼리 비교한다.
    ~  : bit not
    & : bit and  :두 조건 의 공통 부분 추출(교집합) -and
                   ~ 중에서, ~이고
    ^ : bit xor  : 두값이 다르면 결과 1, 같으면 0
    | : bit or :두 조건의 합집합 - or
                   ~ 이거나, ~또는

    a = 3 
    b = ~a   : -4

{비트 and - 특정bit값만 추출하는 방법: bit masking}
    0101 0011
& 0001 0000
    0001 0000  : 사운드 카드 설치됨
    0000 0000  : 사운드 카드 설치 안됨

      s
a     0000 0011   : 3
~a    1111 1100   : bit not   -4
      1111 1101   :             -3
      1111 1110   :             -2
      1111 1111   :             -1   
               
a     0100 0001   : 65   == 'A' 0x41
&     0100 0000   :             0x40 
      0100 0000   :             0x40  
       ^  

a     1001 0001   : 
&     0100 0000   :             0x40 
      0000 0000   :             0x00

bit masking
      a & 0x40  
0x40           - 해당비트가 1
0x00           - 해당비트가 0

  | : or, vertical bar 

그래픽에서 비트연산자 사용하는 예제
https://blog.naver.com/lagrange0115/222653039029
논리식 - 0: false, 1: true

논리게이트
  a    b     &&    ^    ||
  0    0     0     1    0
  0    1     0     0    1
  1    0     0     0    1
  1    1     1     1    1   

🐲 비트 shift 연산자
   a << 3      
                   s
   a                 0000 0011    3
   a<<3      0000001 1000     24 = 3 * 2의3승
   
   a >> 2    
   s
   0001 1000
   sss0 0011 000    : 추가되는 숫자 s는 부호비트가 들어옴 

   a >>> 2  
   s
   0001 1000
   0000 0011 000    : 추가되는 숫자는 무조건 0 
  
-------------------------------------------------------------------------
🐲 대입연산자(assingment) -속도변화x just한줄 줄이기용, 단항연산자만 가능
    =      a  = 3
   +=     a += 3 ;  a = a + 3;
   -=     a -= 3;   a = a - 3;
   *=
   /=
   %=
   &=
   |=

'JAVA' 카테고리의 다른 글

[java]성적 처리 프로그램 (Scanner사용)  (0) 2024.08.10
[java]-if문(조건 연산자),논리 연산자 처리  (0) 2024.08.10
[java] java programming예제  (0) 2024.08.08
[java]변수와 type  (0) 2024.08.07
[java]Hello World!  (0) 2024.08.07
'JAVA' 카테고리의 다른 글
  • [java]성적 처리 프로그램 (Scanner사용)
  • [java]-if문(조건 연산자),논리 연산자 처리
  • [java] java programming예제
  • [java]변수와 type
라텐느
라텐느
이제 막 개발을 시작한 초보가 개인공부를 하는 공간입니다.
  • 라텐느
    괴발개발
    라텐느
    • 개발자 (151) N
      • HTML|CSS (14)
      • JAVA (29)
      • JAVACSCRIPT (15)
      • SQL (16)
      • 기타 (5)
      • JSP (2)
      • SPRING (13)
      • SPRING BOOT (6)
      • Git&GitHub (1)
      • 시행착오 (2)
      • 개발일지 (35)
        • GreenMiniProject1 (12)
        • GreenMiniProject2 (9)
        • GreenFinalProject (14)
      • Flutter (5)
      • 자격증 (1)
        • SQLD (1)
      • AWS (2)
      • Linux (1)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 태그
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    db
    tag
    일지
    CSS
    JQuery
    JS
    태그
    SQL
    오블완
    부트캠프
    개발자
    HTML
    AJAX
    티스토리챌린지
    java
    자기계발
    link
    input
    javascript
    링크
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
라텐느
[java]연산자
상단으로

티스토리툴바