자바 연산자

홈 > 공유팁! > 프로그램 관련
프로그램 관련

자바 연산자

꽁스짱 0 929

산술연산자(Arithmetic Operator) 
관계연산자(Relational Operator) 
논리연산자(Logical Operator) 
비트연산자(Bitwise Operator) 
조건연산자(Conditional Operator) 
할당연산자(Assignment Operator) 
산술연산자
          - 수치적인 연산을 하기 위한 연산자 
          - 단항연산자
              ++(전위) ++a  먼저 a에 1을 더하고 명령을 수행
              --(전위) –a    먼저 a에서 1을 빼고 명령을 수행
              ++(후위) a++  먼저 명령을 수행하고 1을 변수에 더함
              --(후위) a--  먼저 명령을 수행하고 1을 변수에서 뺌
              -          -b      현재 변수의 값의 부호를 바꾼다.
              +          +b      변수의 현재 부호를 그대로 유지한다.
          - 이항연산자   
              +,-,*,/,%


class Operation1 {
    public static void main(String[] args) {
        // 변수의 선언과 초기화
        int a = 4, b = 2, c = -3;
        // 후위 연산자 ++
        System.out.println("a = " + a++);
        // 전위 연산자 ++
        System.out.println("a = " + ++a);
        // 후위 연산자 --
        System.out.println("b = " + b--);
        // 전위 연산자 ++
        System.out.println("b = " + --b);     
        // 부호 연산자 -
        System.out.println("-a = " + -a);       


// 부호 연산자 +
System.out.println("+c = " + +c);
System.out.println("a = " + a);
System.out.println("b = " + b);
c = a+++b;
 System.out.println("a+++b = " + c );
 System.out.println("a = " + a++);
 //이항연산
 a=9;b=3;c=0;
 System.out.println("a + b =" + (a+b)); 
 System.out.println("a - b =" + (a-b)); 
 System.out.println("a * b =" + (a*b)); 
 System.out.println("a / b =" + (a/b)); 
 System.out.println("a % b =" + (a%b)); 
                }
              }


관계연산자
          - 좌변과 우변의 관계를 파악하여 그 관계에 따라 참과 거짓의 값을 연산
            >      op1 > op2      op1이 op2보다 크면 결과값은 true
          <        op1 < op2      op1이 op2보다 작으면 결과값을 true
            >=    op1 >= op2    op1이 op2보다 크거나 같으면 true
          <=      op1 <= op2    op1이 op2 보다 작거나 같으면 true
          ==      op1 == op2    op1과 op2가 같으면 true
          !=      op1 != op2      op1 과 op2 가 같지 않으면 true
         


class Operation2 {
  int state;
  public static void main(String[] args) {
Operator2 o1, o2, o3, o4;
o1 = new Operator2();
o1.state=1;
            o4 = new Operator2();
o4.state=2;

            o2 = o1;  //객체의 참조값이 저장됨
o3 = o2;
if (o1 == o3) { System.out.println("o1과 o3는 같은 Object"); }
else {  System.out.println("o1과 o3는 다른 Object"); }
if (o1.equals(o4)) { System.out.println("o1과 o4는 같은 Object"); }
else {      System.out.println("o1과 o4는 다른 Object"); }
  }
}


논리연산자
    - 좌변과 우변의 논리적 관계를  나타내기 위한 연산자
    &&  op1 && op2    op1과 op2가 둘다 참이면 true, op1이 참인 경우에만 op2를 평가 
    ||    op1 || op2      op1과 op2 둘 중 하나라도 참이면 true, 
                                  op1이 거짓인 경우에만 op2를 평가 
    !    ! op              op를 부정 
    &    op1 & op2      op1과 op2가 둘다 참이면 true, op1과 op2 모두 평가 
    |      op1 | op2        op1과 op2 둘 중 하나라도 참이면 true, op1과 op2 모두 평가 

    count = 0;
    if ((++value%2==0) & ++count < limit) 
          이경우  & 대신 &&을 사용하면 왼쪽이 참인경우에만 count가 증가…

          if (count > 0 && total/count > 5) 
          이경우  && 대신 &을 count에 혹시라도 0이 들어오면 o으로 나누는 형태가 되므로
          오류발생




비트연산자
          &      op1 & op2          op1과 op2의 값을 비트 AND 연산한다.
          |        op1 | op2          op1과 op2의 값을 비트 OR 연산한다.

          ^        op1 ^ op2          op1과 op2의 값을 비트 XOR 연산한다.
          >>      op1 >> op2        op1을 op2만큼 우측으로 시프트
        <<        op1 << op2        op1을 op2만큼 좌측으로 시프트
        >>>      op1 >>> op2      op1을 op2만큼 우측으로 시프트
                  (시프트된 자리에 언제나 0이 삽입)
          ~      ~op1                  보수(Complement)
조건연산자
        - 피연산자를 3개 취하므로 3항 연산자라고도 한다.
        - 논리식 ? 표현식1 : 표현식2
          age = yourage > myage? yourage : myage

         


public class ConditionOperation {
public static void main(String[] args) {
int nHats=1;
System.out.println("I Have "+nHats + " hat" + (nHats==1?".":"s."));

nHats++;
System.out.println("I Have "+nHats + " hat" + (nHats==1?".":"s."));
}
}


할당연산자
          +=          op1 += op2            op1 = op1 + op2
          -=          op1 -= op2            op1 = op1 - op2
          *=          op1 *=  op2            op1 = op1 * op2
          /=          op1 /= op2              op1 = op1 / op2
          %=          op1 %= op2            op1 = op1 % op2
          &=          op1 &= op2            op1 = op1 & op2
          |=          op1 |= op2              op1 = op1 | op2
          ^=          op1 ^= op2              op1 = op1 ^ op2

        <<=          op1 <<= op2            op1 = op1 << op2
          >>=        op1 >>= op2            op1 = op1 >> op2
          >>>=      op1 >>>= op2          op1 = op1 >>> op2


public class AllignOperation {
    public static void main(String[] args) {       
        int i = 1;
        // 할당연산자의 사용
        System.out.println(i += 1);
        System.out.println(i -= 3);
        System.out.println(i *= 5);
        System.out.println(i /= i);
        System.out.println(i %= 2);
        System.out.println(i &= 3);
        System.out.println(i |= 10);
        System.out.println(i ^= 4);
        System.out.println(i <<= 1);
        System.out.println(i >>= 2);
        System.out.println(i >>>= 24);
    }
} 


0 Comments
제목