ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA_이론정리03_연산자2
    1. JAVA/1.1 이론정리 2022. 3. 14. 12:08

    논리연산자 : 두 논리값 사이의 관계를 따지는 연산자
    ==> 즉, 논리값을 AND, OR, NOT 방식으로 관계를 알아보는 연산자

    주의사항 ] 
    비교하는 데이터는 반드시 논리값이어야 한다. 

    기호 ] 
    & AND 관계 (둘 다 만족)
    |  OR 관계 (둘 중 하나만)



    절삭연산
    ------------------------------------------------------------------
    &&  AND 관계 - 앞이 거짓이면 뒤는 읽어보지도 않음
    ||   OR 관계 - 앞이 참이면 뒤는 읽어보지도 않는 연산자 
    ------------------------------------------------------------------

    ! NOT 관계 (결과 부정하고 싶을때, 논리값 뒤바꿈)


    진가표

    AND 데이터1 & 데이터2
    OR 데이터1 | 데이터2

    데이터1 데이터2 OR AND
    true  true true true
    true  false true false
    false  true true false
    false  false false false


    참고 ] 
    컴퓨터는 한번의 질문에 오직 한개만 질문할 수 있다.
    즉, 크면 큰거고 작으면 작은거다.

    예 ) 
    데이터가 10에서 20사이인가? 라는 질문은 할 수 없다.
    그러기 때문에 필요한 것이 논리 연산자 이다.


    예 ] 
    데이터가 10에서 20 사이인가? 라는 질문은 
    10 < 1 < 20 
    수학 연산식 에서는 상기와 같이 계산하지만,


    컴퓨터에서는 동시에 질문하는 것은 안되고
    10 < a && a < 20
    라는 방식으로 질문해야 한다.

    참고 ] 
    이 연산자의 결과는 역시 논리값이 나온다.


    참고 ] 
    절삭 연산
    ==> 특정 부분의 계산식은 계산하지 않도록 한다.(읽어보지도 않음)

    & 절삭연산을 하지 않는다.
    && 절삭 연산을 실행한다.
    앞의 질문이 거짓이면 뒤에 어떤 데이터가 오더라도 읽어보지 않는다.

    | 절삭연산을 하지 않는다.
    || 절삭연산을 실행한다.
    앞이 참이면 뒤의 내용은 읽어보지도 않는다.


    int no1  = 10;
    int no2 = 10;
    boolean bool = (no1 > no2) && (no1++ == no2);
    && 앞 연산이 false 였기 떄문에 뒷부분에는 실행 안됨.

    System.out.println("bool : " + bool); //false
    System.out.println("no1 : " + no1); //10
    System.out.println("no2 : " + no2); //10

    의 결과값과 
    마지막 변수의 값을 예측해서 작성하시오




    비트연산자
    C언어에서 가지고 온 연산자
    C언어는 주소를 직접 이용할 수 있으므로 필요했던 연산자이지만,
    자바는 주소를 이용할 수 없으므로 사용하지 않는 연산자 이다.

    & 둘 다 1이면 1, 나머지는 0
    | 둘 중 하나가 1이면 1
    ^ 다르면 1 같으면 0



    시프트 연산자
    기호 ]
    부호비트는 그대로
    >>
    <<

    부호비트도 쉬프트
    >>>

    ~ : 보수화 연산자(단항 연산자)
    ==>각각의 비트의 숫자를 반대로 바꾸는 연산자.



    3항 연산자(조건 연산자)
    ==> 연산자라기 보다는 하나의 명령에 가까운 형식을 가지고 있는 연산자의 한 종류
    조건에 따라서 처리할 내용을 구분해서 처리하도록 하는 연산자

    형식 ] 참/거짓
    변수 = (조건식) ? (조건식이 참일떄 처리내용(반환값)) : (조건식이 거짓일때 처리내용(반환값));

    참고 ]
    조건식은 반드시 참 또는 거짓으로만 만들어지도록 처리해야 한다.
    if 명령을 단순화 시킨 의미를 가진 명령

    참고 ] 
    모든 연산자가 중첩 처리되듯이
    3항 조건 연산자도 중첩처리 될 수 있다.

    예 ]
    (조건식1) ? ((조건식2)?(5):(6)) : ((조건식3)?(7):(8));
    ==> 조건식 1이 참이고 조건식 2가 참이면 5, 조건식 2가 거짓이면 6을
    조건식 1이 거짓이고 조건식 3이 참이면 7, 조건식 3이 거짓이면 8을 실행하세요.


     

    '1. JAVA > 1.1 이론정리' 카테고리의 다른 글

    JAVA_이론정리06_배열2  (0) 2022.03.14
    JAVA_이론정리05_배열  (0) 2022.03.14
    JAVA_이론정리04_반복문과 조건문  (0) 2022.03.14
    JAVA_이론정리02_연산자1  (0) 2022.03.14
    JAVA_이론정리01_데이터종류  (0) 2022.03.14
Designed by Tistory.