[연산자 (Operator)]


데이터를 가공 및 처리를 하기 위해

1. 산술연산자

    단항연산자 :  -a, -1*a 서로 같은 연산 결과

    이항연산자 :  a+b

    삼항연산자 :  (조건) ? (참) : (거짓)

 

2. 관계(비교)연산자
    <,  >,  <=,  >=,  == (서로같다),  != (같지않다)

 

3. 증감연산자
    ++, --

 

4. 논리연산자

    참인지 거짓인지를 판단해서 처리할때

    && and, 논리곱, 그리고
    0 0 0
    1 0 0
    0 1 0
    1 1 1

 

    ||  or,    논리합, 또는
    0 0 0
    1 0 1
    0 1 1
    1 1 1

 

    ! Not 연산자

    !(5<10)

 

* 연산의 우선순위
   - 최우선연산자 : ()
   - 산술->관계->논리
   - 대입연산자 : = 맨마지막에 연산

 

5. shift연산자

 

6. 삼항연산자

    (조건식) ? (참) : (거짓) ;

 

 

파일명 : TestOperator.java

 

public class TestOperator{
    public static void main(String[] args){

    //산술연산자
   /*
   int p=10,q=20;
   System.out.println(p+"+"+q+"="+(p+q)); //10+20=30
   System.out.println(p+"-"+q+"="+(p-q));
   System.out.println(p+"*"+q+"="+(p*q));
   System.out.println(p+"/"+q+"="+(p/q));//몫연산자
   System.out.println(p+"%"+q+"="+(p%q)); //나머지연산자
   

   System.out.println(10/3); //3
   System.out.println(10%3); //1
   System.out.println(3/10); //0
   System.out.println(3%10); //3
   //나머지연산자에서 피젯수값이 더 크면
   //나누고자 하는 대상값이 그대로 결과가 된다.

   //(값%2) 나올수 있는 나머지 값의 종류 : 0  1
   //boolean flag=true;  boolean flag=1; 의미가 동일
   //boolean flag=false;   boolean flag=0; 의미가 동일
   //자바에서는 0만 거짓이고 나머지는 모두 참

      //(값%3) 0  1  2
      //(값%45) 45종류의 나머지 나온다. (0 1 2 ... 43 44)
    
  int r=-p; //-1*p 단항연산자
  System.out.println(r);
 */

/*
//관계(비교) 연산자

//비교연산자는 boolean값으로 반환된다

 

     System.out.println(10<20);
     System.out.println(10>20);
     System.out.println(10<=20);
     System.out.println(10>=20);
     System.out.println(10<=10);
     System.out.println(10==20); //서로같다
     System.out.println(10!=20);  //서로 같지 않다.

  //문) 4가 짝수인지 확인
  //짝수의 정의 : 2로 나누어서 나머지가 0
     System.out.println((4%2)==0);
*/

 

   //해당년도가 윤년인지?
   //1)윤년? 2월29일 4년마다 한번씩
   int year=2012;
   System.out.println(year%4==0);

 

   //2)100년마다 한번씩은 윤년이 아니다
   System.out.println((year%4==0)&&(year%100!=0));

 

   //3)무조건 400년마다 한번씩은 윤년
   System.out.println(((year%4==0)&&(year%100!=0))||(year%400==0));

/*
//증감연산자
     int p=10;
     p=p+1;
     System.out.println("p=" + p); //p=11
     p+=1; //p=p+1
     System.out.println("p=" + p); //p=12
     p++; //p=p+1
     System.out.println("p=" + p); //p=13
     ++p;//p=p+1
     System.out.println("p=" + p); //p=14

     int q=10;
     q=q-1;
     System.out.println("q=" + q); //9
     q-=1;
     System.out.println("q=" + q); //8
     q--;
     System.out.println("q=" + q); //7
     --q;
     System.out.println("q=" + q); //6
*/
 /*
  //증감연산자는 독립적으로 쓰이면 크게 문제 되지 않지만
  //대입연산자와 함께 사용할때에는 선증가, 후증가인지 매우 중요

     int a=10,b=20,c,d;
    c=++a; //a=a+1 -> c=a
    d=b--; //d=b -> b=b-1
    //a=11 b=19 c=11 d=20
    System.out.println("a=" + a);
    System.out.println("b=" + b);
    System.out.println("c=" + c);
    System.out.println("d=" + d);

 

    int x=4,y=5,z;
    z=++x*y++;  //z=--x*y--;
   //x=x+1
   //z=x*y
   //y=y+1

   System.out.println(x);
   System.out.println(y);
   System.out.println(z);


*/

 

//논리연산자
     int p=10;
  //p값이 짝수이면서 5의배수인지 확인
  //조건1) 짝수인지? 2로 나누어서 나머지가 0
  //조건2) 5의배수? 5로 나누어서 나머지가 0
 

  System.out.println((p%2==0) && (p%5==0));


  //(10%2==0) && (10%5==0)
  //(   0  ==0) &&  (  0   ==0)
  //(   true    )        (  true    )
  //(  true  )

 

  //3의 배수이거나 10의 배수인지 확인
  int q=15;
  System.out.println((q%3==0) || (q%10==0));
  System.out.println(!((q%3==0) || (q%10==0)));//Not연산자

  //(15%3==0) || (15%10==0)
  //(   0  ==0) || (   5    ==0)
  //(   true    ) || (   false     )
  //(  true  )
  }
}

 

 

파일명 : TestShift.java

 

public class TestShift{
   public static void main(String[] args){

   //shift연산자
   /*
   비트단위의 연산
   1byte는 8bit로 구성 (bit는 0 과 1로 표현)
   A 65 2진수-> 0    1   0  0 0 0 0 1
                     128 64 32 16 8 4 2 1  <- 8421코드
      35 2진수->           1  0  0 0 1 1
   */

 

   //right shift >>
   //대상값/2^n
   System.out.println(16>>3);

  

   //left shift <<
   //대상값*2^n
     System.out.println(16<<3);

 

    //비트연산자 : ~(1의보수) |(비트합) &(비트곱)

     System.out.println(~9); //보수연산자
     System.out.println(2^3); //제곱승

   }
}


 

파일명 : TestThree.java

 

public class TestThree{
  public static void main(String[] args){

  //삼항연산자
  //(조건) ? (참) : (거짓)
/*
    int su=5;
    String str="";
    str = (su%2==0) ? "짝수" : "홀수";
    //(5%2==0)?               : "홀수"
    System.out.println(str);
*/
//문)p값과 q값중에서 큰수 출력
/*
  int p=10,q=20;
  System.out.println( (p<q) ? q : p );
  //                       10<20? 20
*/

//문)p, q, r중에서 큰수 출력
  int p=10,q=20,r=15;
  int max;
  max=(p<q) ? q : p;       //max=(10<20)? 20
  max=(max<r) ? r : max; //max=(20<15)?  : 20
  System.out.println("최대값 = "+max);

  }
}

+ Recent posts