[06-D4] 연산자(Operator)

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

>>>>> Arithmetic.java

/*
 컴파일 및 실행:
 javac Arithmetic.java
 java Arithmetic
*/
public class Arithmetic
{
   public static void main(String args[])
   {
      int i = 20; // 정수, 4 Byte
      int j = 12; // 정수, 4 Byte

      int a = i + j; // a = 20 + 12; --> 32
      int b = i - j; // b = 20 - 12; --> 8
      int c = i * j; // c = 20 * 12; --> 240
      int d = i / j; // d = 20 / 12; --> 1, 정수/정수 = 정수
      int e = i % j; // e = 20 % 12; --> 8

      System.out.println("i : " + i + "j : " + j);
      System.out.println("덧셈 결과 : " + a);
      System.out.println("뺄셈 결과 : " + b);
      System.out.println("곱셈 결과 : " + c);
      System.out.println("나눗셈 결과 : " + d);
      System.out.println("나머지 결과 : " + e);
      System.out.println("");
      System.out.println("정수/정수의 결과:" + (i / j));
      System.out.println("(float)정수/정수의 결과:" + ((float)i / j));

      int m = 10 / 0;

   }
}

 


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

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

 


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

>>>>> Operator.java

/*
 컴파일 및 실행:
 javac Operator.java
 java Operator
*/
public class Operator
{
    public static void main(String[] args)
    {
        int i = 10; // 정수, 4 byte
        int j = 20; // 정수, 4 Byte
       
        i += j;  // i = i + j;
        System.out.println("i += j: " + i); // i = 30
       
        i -= j; // i = i - j;
        System.out.println("i -= j: " + i); //10
    }
}

 

 

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

>>>>> IncDec.java

/*
 컴파일 및 실행:
 javac IncDec.java
 java IncDec
*/
public class IncDec
{
    public static void main(String[] args)
    {
        long i = 0;    // 정수, 8 byte
        long hap = 0;  // 정수, 8 byte
       
        // ⓐ 전위 연산자
        // hap = ++i;
        //--------------
        // i = i + 1;
        // hap = i;
       
        // ⓑ 후위 연산자
        // hap = i++;
        //--------------
        // hap = i;
        // i = i + 1;
       
        // ⓒ 권장 아님, 디버깅하기가 어려운 코드,
        //    논리적 에러 발생 코드가 되기 쉬움,
        //    개발 및 유지보수 시간의 증가
        // hap = ++hap + ++i;
       
        // ⓓ
        // --i;   // i--, ++i;
        // i = i - 1;
       
        System.out.println("hap: " + hap + " i: " + i);

    }
}

 


- 정리
        int i = 10;
        int j = 0;

        ++i;      //1)
        j = i;

        i++;      //2)
        j = i;

 

        j = ++i;  //3)

        j = i++;  //4)

 

 

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

>>>>> Compare.java

/*
 컴파일 및 실행:
 javac Compare.java
 java Compare
*/
public class Compare
{
   public static void main(String args[])
   {
      int i = 5;
      int j = 10;
      int k = 15;

      System.out.println(" 5 == 10 : " + (i == j)); // 같은 값인지 비교, false
      System.out.println(" 5 != 15 : " + (i != k)); // 다른 값인지 비교, true
      System.out.println("10 <  15 : " + (j < k));
      System.out.println("15 >   5 : " + (k > i));
      System.out.println(" 5 <= 15 : " + (i <= k));
      System.out.println(" 5 >= 10 : " + (i >= j));
     
      //연산 순서: 산술 연산자 --> 관계 연산자
      System.out.println("(10 + 5 < 20 + 10) : " + (10 + 5 < 20 + 10));
      // System.out.println("((10 + 5) < (20 + 10)) : " + ((10 + 5) < (20 + 10)));
   }
}

 

 

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

>>>>> Bitwise.java

class Bitwise
{
      public static void main(String args[])
      {
        int a = 2;
        int b = 5;
       
        int c = a | b; //2진수 bit or
     
        // ....8421 
        // 00000010
        //+00000101
        //--------- 
        // 00000111--> 7
       
        int d = a & b; //and
        // 00000010
        //+00000101
        //--------- 
        // 00000000--> 0
       
       
        int e = a ^ b; //Exclusive or
        // 00000010
        //+00000101
        //--------- 
        // 00000111--> 7
       
       
        int i; int j;
        i = a << 2;    //좌 shift 연산, 2를 2번 곱합
        // ....8421 
        // 00000010
        // 00001000 --> 8
       
       
        j = b >> 2;    //우 shift 연산. 2로 2번 나눔
        // ....8421 
        // 00000101
        // 00000001 --> 1
       

        System.out.println("        a = " + a);
        System.out.println("        b = " + b);
        System.out.println("      a|b = " + c);
        System.out.println("      a&b = " + d);
        System.out.println("      a^b = " + e);
        System.out.println("     a<<2 = " + i);
        System.out.println("     b>>2 = " + j);
      
    }
}

 

 

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

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

 

 

 

Posted by ▶파이팅◀

블로그 이미지
Let's start carefully from the beginning
▶파이팅◀

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

글 보관함