이안의 평일코딩

JAVA의 정석 5일차 - 연산자2 본문

Back-end/Java

JAVA의 정석 5일차 - 연산자2

이안92 2020. 6. 22. 12:32
반응형

2020.06.19(금)

 

1. 단항연산자

 (1) 증감연산자 (++, --)

 (2) 부호연산자 (+, -)

 (3) 부정연산자 (!)

 (4) cast연산자 ((type))

 

2, 이항연산자

 (1) 산술연산자 (+, -, *, /, %)

 (2) 비트연산자 (비트와 비트를 연산 &, |, ^)

 (3) 쉬프트연산자 (비트이동 연산자 <<, >>)

 

 * 이항 결과값=> 
   산술 : 결과값을 알 수 없다 
     int+int = int 
     double + int = double 
     float+long = float 
   비교 : true/false =>조건문(if)에 쓰임 
   논리 : true/false =>조건문(if)에 쓰임 
   대입 
   

 (4) 비교연산자 : 수와 수를 비교 => 정수, 실수, 문자, 논리 (문자열은 비교할 수 없다) 
   "Hello"=="Hello" ===> equals()
   =>문자열을 저장하는 데이터형 => String
   char c = 'Hello' => String s = "Hello"
  1) 종류
    == : 같다 => 10==20 (false)
    != : 작지 않다 => 10!=20 (true)
    <  : 작다 => 10<10 (false)
    >  : 크다 => 10>10 (false)
    <= : 작거나 같다 => 10<=10 (true)
    10<10 || 10==10  || OR
    >= : 크거나 같다 => 10>=10 (true)
    10>10 || 10==10
   2) 결과값

   -> boolean (true/false)

 

 (5) 논리연산자 : if문에서 주로 사용
  형식) && (직렬), || (병렬)
   ======= ======
   두개 true 한개이상 true
   && => 범위, 기간을 포함 (체크인 기간동안, 순차적으로 연결, 연속적)
   || => 범위나 기간을 벗어나는 경우에 주로 사용 (예약할 때, 날짜마다, 비연속적)
  
   jumsu>=90 (&&) jumsu<=100
  
   jumsu<=0 || jumsu>100
  
   조건 (&&, ||) 조건
   === ===
   true/false true/false
  
      &&  ||
   =========================
   true true  true true
   =========================
   true false false true
   =========================
   false true false true
   =========================
   false false false false
   
   6<5 && 10==10
   ===    ======
   false && true ==> false
   
   효율적인 연산을 함 (속도 빠르게 함)
   int a=10;
   int b=9;
   
   a<b && ++b==a ==> false // 앞에것이 false이므로 뒤에것 계산하러 안감 (증가안함) =>효율적인 연산
   ===    ======
    연산 수행 여부 (효율적인 연산)
   
   단축 계산
   && ==> 첫번째 피연산자가 false면 다른 피연산자들을 계산하지 않는다
   || ==> 첫번째 피연산자가 true면 다른 피연사자들을 계산하지 않는다
   
   b=?

 

(6) 대입연산자 : 결과값을 받는다 
  종류) 
   = -> int a = 10 -> 10을 a라는 메모리에 대입한다 
   복합대입연산자 
   op = -> op(연산자) 
   += 
   -> 예) 
   int a = 10; 
   a+=2; -> a=a+2 
   a=12 
   -= 
   -> 예) 
   int a = 10; 
   a-=5; -> a=a-5 
   a=5 
   *= 
   -> 예) 
   int a = 10; 
   a*=5; -> a=a*5 
   a=50 
   /= 
   -> 예) 
   int a = 10; 
   a/=3; -> a=a/3 
   a=3 
   %= 
   -> 예) 
   int a = 10; 
   a%=3; -> a=a%3 
   a=1 
   & = 
   -> 예) 
   int a = 10; 
   a&=3 -> a=a&3 -> a=10&3 
   1010 
   0011 
   ==== & and는 곱함 
   0010 -> 2 
   a=2 
   |= 
   -> 예) 
   int a = 10; 
   a|=3; -> a=a|3 -> a=10|3 
   1010 
   0011 
   ===== | or는 더함 
   1011 -> 11 
   a=11 
   <<= 
   -> 예) 
    int a = 10; 
    a<<=3; -> a=a<<3 -> a=10<<3 
    ======= 
    10*2^3 
    a=80 
    1010(000) 
   >>= 
   -> 예)  
    int a = 10; 
    a>>=3; -> a=a>>3 -> a=10>>3 
    ======= 
    10/2^3 
    a=1 
    1(010) 
    
    한개증가 : 증가연산자 
     ++ 
    원하는 갯수만큼 증가 : 복합대입연산자 
     +=5 
    
    한개증가 
    a++ 
    ++a 
    a+=1 
    a=a+1

 

3. 삼항연산자

 조건식 ? 식1 : 식2

 조건식 참 => 식1

 조건식 거짓 => 식2

 

4. 연산자 우선순위
   1) ()
   2) 단항연산자
   3) 이항연산자

 

5. (int)(Math.random()*100)+1;

 0.0~0.99 ->100 -> 0.0~99.0

 (int)(0.0~99.0) -> (0~99)+1 -> 1~100

 

6. System.out.println(cc>='A' && cc<='z' ? "대문자":"소문자");

 cc>='A' && cc<='Z' ==> 대문자
 cc>='a' && cc<='z' ==> 소문자

반응형
Comments