자기개발/Java

Chapter 3 연산자

실버블렛 2012. 1. 12. 22:09
반응형

 연산자(Operator)

[01] 연산자(operator)
   
1. 산술(수치) 연산자 : +, -, *, /, %
   - 정수/정수 = 정수
   - float n = 0.0f; f를 제거하면 double 8바이트가 됩니다.

2. 대입 연산자 : =
   - 좌변은 상수값이 아니라 기억장소가 와야합니다.

     ⓐ a = i + j;
     ⓑ b = 10 + 20;
     ⓒ 100 = i + 10;  //ERROR

3. 연산후대입 연산자 : +=, -=, *=, /=, %=
   - 처리속도 향상

4. 증가/감소 연산자
   - ++: 1씩 증가 시킵니다.
   - --: 1씩 감소 합니다.
   - 알아보기 쉽게 코딩하는 것이 필요합니다.


5. 관계(비교) 연산자 : <, <=, >=, >, ==, !=, instanceof

6. 비트연산자(2진수 연산)
   - >>: 지정된 수가 양수이면 0, 음수이면 1로 채워집니다., 2로 나눈 결과와 같습니다.
   - <<: 무조건 0으로 채워집니다., 2로 곱한 결과와 같습니다.
   - >>>: 무조건 0으로 채워서 양수 처리합니다.

7. 논리연산자(조건 연산자, Short Circuit)
   - 조건문과 함께 많이 사용됨
   - &&: 양쪽의 조건이 전부 맞아야 참입니다.
   - ||: 어느 한쪽만 참이면 참입니다.

   - 제어문에서 조건 명시에 많이 사용됨.
     if ((kuk < 40)  || (eng < 40)){ .....
     if ((kuk >= 90)  && (eng >= 90)){ .....    


---------------------------------------------------------------------------------------------
class OperatorEx1
{
 public static void main(String[] args)
 {
  int i=5;
  i++;
  System.out.println(i);
  i=5;
  ++i;
  System.out.println(i);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx2
{
 public static void main(String[] args)
 {
  int i=5;
  int j=0;
  j=i++;
  System.out.println("j=i++; 실행 후, i=" + i +", j=" + j);
  i=5;
  j=0;
  j=++i;
  System.out.println("j=++i; 실행 후, i=" + i +", j=" + j);

 }
}

---------------------------------------------------------------------------------------------
class OperatorEx3
{
 public static void main(String[] args)
 {
  int i=5, j=5;
  System.out.println(i++);
  System.out.println(++j);
  System.out.println("i = " + i + ",j = " + j);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx4
{
 public static void main(String[] args)
 {
  int i=-10;
  i=+i;
  System.out.println(i);
  i=-10;
  i=-i;
  System.out.println(i);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx5
{
 public static void main(String[] args)
 {
  byte b = 10;
  System.out.println("b = " + b);
  System.out.println("~b = " + ~b);
  System.out.println("~b+1 = " + (~b+1));
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx6
{
 public static void main(String[] args)
 {
  byte b = 10;
  //byte result = ~b;
  byte result = (byte)~b;

  System.out.println("b = " + b);
  System.out.println("~b = " + result);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx7
{
 public static void main(String[] args)
 {
  boolean power = false;
  System.out.println(power);
  power = !power;
  System.out.println(power);
  power = !power;
  System.out.println(power);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx9
{
 public static void main(String[] args)
 {
  byte a = 10;
  byte b = 30;
  //byte c = a * b; 에러발생
  byte c = (byte)(a * b);
  System.out.println(c);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx10
{
 public static void main(String[] args)
 {
  int a = 1000000;
  int b = 2000000;
  long c = a * b;
  System.out.println(c);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx11
{
 public static void main(String[] args)
 {
  long a = 1000000 * 1000000;
        long b = 1000000 * 1000000L; //long형 리터럴
  System.out.println(a);
  System.out.println(b);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx12
{
 public static void main(String[] args)
 {
  int a = 1000000 * 1000000 / 1000000;
        int b = 1000000 / 1000000 * 1000000;
  System.out.println(a);
  System.out.println(b);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx13
{
 public static void main(String[] args)
 {
  char c1 = 'a';
  char c2 = c1;
        char c3 = ' ';

  int i = c1 + 1;

  c3 = (char)(c1 + 1);
  c2++;
  c2++;
  System.out.println("i=" + i);
  System.out.println("c2=" + c2);
  System.out.println("c3=" + c3);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx14
{
 public static void main(String[] args)
 {
  char c1 = 'a';

//  char c2 = c1 + 1; //라인5 : 컴파일 에러발생!!!
        char c2 = 'a' + 1; //라인6 : 컴파일 에러없음
  System.out.println(c2);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx15
{
 public static void main(String[] args)
 {
  char c = 'a';
  for(int i=0;i<26;i++){
    System.out.print(c++);
  }
  System.out.println();

  c = 'A';
  for(int i=0;i<26;i++){
   System.out.print(c++);  
  }
  System.out.println();

  c = '0';
  for(int i=0;i<10;i++){
   System.out.print(c++);  
  }
  System.out.println();
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx16
{
 public static void main(String[] args)
 {
  char lowercase = 'a';
  char uppercase = (char)(lowercase - 32);
  System.out.println(uppercase);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx17
{
 public static void main(String[] args)
 {
  float pi = 3.141592f;
  float shortPi = (int)(pi * 1000) / 1000f;

  System.out.println(shortPi);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx18
{
 public static void main(String[] args)
 {
  float pi = 3.141592f;
  float shortPi = Math.round(pi * 1000) / 1000f;

  System.out.println(shortPi);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx19
{
 public static void main(String[] args)
 {
  int share = 10 / 8;
  int remain = 10 % 8;
  System.out.println("10을 8로 나누면,");
  System.out.println("몫은 " + share + "이고, 나머지는 " + remain +"입니다.");
 }
}

---------------------------------------------------------------------------------------------

class OperatorEx20
{
 public static void main(String[] args)
 {
  for(int i=1;i<=10;i++){
   if(i%3==0){
    System.out.println(i);
   }
  }
 }
}

---------------------------------------------------------------------------------------------

class OperatorEx21
{
 public static void main(String[] args)
 {
  System.out.println(-10%8);
  System.out.println(10%-8);
  System.out.println(-10%-8);
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx22
{
 public static void main(String[] args)
 {
  int temp;

  System.out.println(-8);
  System.out.println(Integer.toBinaryString(-8));
  System.out.println();

        temp = -8 << 1;
  System.out.println("-8 << 1 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();

  temp = -8 << 2;
  System.out.println("-8 << 2 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();


        System.out.println(-8);
  System.out.println(Integer.toBinaryString(-8));
  System.out.println();

        temp = -8 >> 1;
  System.out.println("-8 >> 1 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();

  temp = -8 >> 2;
  System.out.println("-8 >> 2 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();

        System.out.println(-8);
  System.out.println(Integer.toBinaryString(-8));
  System.out.println();

        temp = -8 >>> 1;
  System.out.println("-8 >>> 1 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();

  temp = -8 >>> 2;
  System.out.println("-8 >>> 2 = " + temp);
  System.out.println(Integer.toBinaryString(temp));
  System.out.println();  
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx23
{
 public static void main(String[] args)
 {
  if(10 == 10.0f){
  System.out.println("10과 10.0f는 같다");
  }

  if('0' != 0){
  System.out.println("'0'과 0은 같지 않다.");
  }

  if('A' == 65){
  System.out.println("'A'는 65와 같다.");
  }

  int num = 5;
  if(num>0 && num<9){
  System.out.println(num +"는 0보다 크고, 9보다는 작다.");
  }
 }
}


---------------------------------------------------------------------------------------------
class OperatorEx25
{
 public static void main(String[] args)
 {
  char x = 'j';
  if((x>='a' && x<='z')||(x>='A' && x<='Z')){
   System.out.println("유효한 문자입니다.");
   } else {
    System.out.println("유효하지 않은 문자입니다.");
   } //if문
 } //mail
}

---------------------------------------------------------------------------------------------
class OperatorEx26
{
 public static void main(String[] args)
 {
  int x = 3, y = 5;
   
  System.out.println("x는" + x +"이고, y는 " + y + "일 때,");
  System.out.println("x | y = " + (x | y));
  System.out.println("x & y = " + (x & y));
  System.out.println("x ^ y = " + (x ^ y));

  System.out.println("true | false = " +(true | false));
  System.out.println("true & false = " +(true & false));
  System.out.println("true ^ false = " +(true ^ false));
 }
}

---------------------------------------------------------------------------------------------
class OperatorEx27
{
 public static void main(String[] args)
 {
  int x = 10, y = -10;

  int absX = (x >= 0) ? x : -x;
  int absY = (y >= 0) ? y : -y;

  System.out.println("x= " + x + "일 때, x의 절대값은 " + absX);
  System.out.println("y= " + y + "일 때, y의 절대값은 " + absY);
 }
}

---------------------------------------------------------------------------------------------

반응형

'자기개발 > Java' 카테고리의 다른 글

Chapter 5 배열(Array)  (0) 2012.01.21
Chapter 4 조건문과 반복문  (0) 2012.01.12
Chapter 2. 변수  (0) 2012.01.12
문자열의 일부를 다른 무자열로 치한 코드  (0) 2012.01.11
JDK 1.7.0 설치  (0) 2012.01.11