When will you grow up?

[Java] 연산자(operator) 본문

02. Study/Java

[Java] 연산자(operator)

미카이 2016. 2. 5. 19:25

package operationtypetest;

public class OperationTypeTest {

 public static void main(String[] args){
  
  int num1 = 10;
  int num2 = 3;
  int result = num1 % num2;
  
  System.out.println("num1 % num2 : " + result);//1
  
  //연산 후 대입연산자
  result +=3;
  
  System.out.println("result +=3 : " + result);//4
  
  System.out.println("num1 != num2 :" +(num1 != num2));
  
  //논리연산자 : 논리값들을 연산해서 결과로 논리값을 반환하는 연산자
  //&& :  피연산자가 값이 모두 true  일때만 true를 반환하는 연산자
  
  System.out.println("ture && true : "+ (true &&true));
  System.out.println("true && false : "+(true && false));
  // || : 피연산자 중 하나만 true 면 true 를 반환해 주는 연산자
  System.out.println("ture || true : "+ (true || true));//true
  System.out.println("true || false : "+(true || false));//true
  //! : true 는 false로 false는 true 로 변경해주는 연산자
  System.out.println("!false :"+ (!false));//true
  System.out.println("!true : "+(!true));//true
  
  //비트연산자 : 연산시 연산 대상 값을 비트로 변경한 후 연산하는 연산자
  //& : 두 피연산자 값이 모두 1일때만 1을 반환하는 연산자
  num1 = 3;
  //00000000 00000000 00000000 00000011
  num2 = 4;
  //00000000 00000000 00000000 00000100
  //&연산시 다 0 이 된다.
  
  result = num1 & num2;
  System.out.println("num1 & num2 : "+ result);//0
  
  // | : 두 피연산자의 값 중 하나만 1이면 1을 반환하는 연산자
  
  result = num1 | num2;
  //00000000 00000000 00000000 00000111
  System.out.println("num1 | num2 : "+ result);//7
  
  //^ : 두 피연산자의 값이 다르면 1을 반환함.
  //00000000 00000000 00000000 00000111
  
  result = num1 ^ num2;
  System.out.println("num1 ^ num2 :" + result);//7
  
  //비트 연산자는 논리연산자로도 사용가능하다.
  //의미는 논리연산자와 같다.
  //단, 짧은 연산은 지원하지 않는다.
  //짧은 연산 : 앞의 피연산자 값으로 연산 결과가 결정될 경우는 뒤의 피연산자를 연산해 주지 않는 연산을 말한다.
  System.out.println("ture && true : "+ (false &&true));// <예를든 예제이다
  System.out.println("true || false : "+(true || false));//true
  System.out.println("ture & true : "+ (false &&true));
  
  //시프트연산자 : 연산 대상이 되는 값을 비트로 변경하여 이동 비트 이동 시키는 연산자
  //<<좌측 비트 이동
  //연산 대상이 되는 값에 좌측 비트만큼의 2의 제곱을 곱하는 연산을 수행함.
  num1= 2;
  //00000000 00000000 00000000 00000010
  result = num1 <<2;
  System.out.println("num1 <<2 : " +result);//8
  
  // >> : 부호 비트 이동 : 우측 시프트 되었을 때 좌측에 남는 비트를 부호 비트 값으로 채움
  // >>> : 비부호 비트 이동 : 우측 시프트 되었을 때 좌측에 남는 비트를 0 값으로 채움
  //연산 대상이 되는 값을 시프트 값 만큼의 2의 제곱으로 나누는 연산
  result = result>>1;
  //00000000 00000000 00000000 00000100
  System.out.println("result >>1 : " +result );//4
  
  //증감 연산자 : 피연산자 값을 1씩 증가 시키거나 1씩 감소 시키는 연산자
  //전치 연산자 : 연산자가 피연산자 앞에 위치 하면 증감연산자를 먼저 실행하고 다른 연산을 실행한다.
  num1 = 5;
  num2 = ++num1;
  System.out.println("num1 = " + num1 + ", num2 = " + num2);//6,6
  
  //후치 연산자 : 연산자가 피연산자 뒤에 위치 하면 다른 연산을 먼저 실행하고 증감 연산자를 실행한다
  num1 = 5;
  num2 = num1++;
  System.out.println("num1 = " + num1 + ", num2 = " + num2);//6,5
  
  //삼항연산자
  //(조건식) ? 조선식이 true 를 반환할 때 반환할 값 : 조건식이 false 를 반환할 때 반환될 값
  //삼항 연산자를 사용해서 절대값을 구하기
  num1= -10;
  num2 = 10;
  
  int absNum1 = (num1<0) ? -num1 : num1;
  int absNum2 = (num2<0) ? -num2 : num2;
  
  System.out.println("absNum1 = " + absNum1);
  System.out.println("absNum2 = " + absNum2);
  
  
 }

'02. Study > Java' 카테고리의 다른 글

[Java] 배열(Array)  (0) 2016.02.07
Comments