Developer Factory

08_06 JAVA - 논리 연산자(Logical Operator) 본문

Developer/Java

08_06 JAVA - 논리 연산자(Logical Operator)

Jeremy.Park 2014. 7. 3. 00:01
package com.eomjinyoung. java.basic .step02;

//////////////////////////////////////////////////////
//주제 : 논리 연산자(Logical Operator)
//////////////////////////////////////////////////////


/* 논리 연산자(Logical Operator)
 * - AND : Operand 둘다 true 일때만 연산 결과가 true 가 됨.
 *          a && b (만약 a가 false 이면 b는 따져보지도 않고 결과값 false를 내 놓는다)
 *          a & b (a 가 false 일지라도, b 까지 따져보고 결과를 내 놓는다)
 * - OR : 두개의 Operand중 하나라도 true이면 결과는 true가 된다)
 *      a || b (a 가 true이면 b는 따져 보지도 않고 결과값 true를 내 놓는다)
 *          a | b (a 가 true일지라도 b 까지 따져보고 결과를 내 놓는다)
 * - NOT : Operand가 true이면 false, false이면 true가 된다.
 *           !a (a 의 값이  true -> false 바뀌고, false -> true)
 */
public class Operator05
{
       public static void main( String[] args)
      {
             /* 테스트 1 : 기본 테스트
            boolean b = true;
            boolean b2 = false;
            
            System.out.println("b && b2 = " + (b && b2));
            System.out.println("b || b2 = " + (b || b2));
            System.out.println("b & b2 = " + (b & b2));
            System.out.println("b | b2 = " + (b | b2));
            System.out.println("!b = " + !b);
             */

             /* 테스트 2 : &&, || 와 & , |의 차이점을 알아보자!
            boolean r = false;
            boolean b2 = false;
            boolean s = b2 & (r = true);
            
            System.out.println("s = " + s);
            System.out.println("r = " + r);
             */
             /* 해설
             * - '&' 연산자는 피연산자 b2 와 (r = true) 를 모두 수행한다.
             */

             /* 테스트 3
            boolean r = false;
            boolean b2 = false;
            boolean s = b2 && (r = true);
            
            System.out.println("s = " + s);
            System.out.println("r = " + r);
             */
             /* 해설
             * - '&&' 연산자는 피연산자 b2가 false이면 이미 결과가 false이므로
             *   다른 피연산자인 (r = true)를 수행하지 않는다.
             */


             /* 테스트 4
            boolean r = false;
            boolean b = true;
            boolean s = b | (r = true);
            
            System.out.println("s = " + s);
            System.out.println("r = " + r);
             */
             /* 해설
             * - '|' 연산자는 피연산자 b 와 (r = true) 모두 수행한다.
             */

             /* 테스트 5
            boolean r = false;
            boolean b = true;
            boolean s = b || (r = true);
            
            System.out.println("s = " + s);
            System.out.println("r = " + r);
             */
             /* 해설
             * - '||' 연산자는 피연산자 b가 true이면 이미 결과가 true이므로
             *   다른 피연산자 (r = true)를 수행하지 않는다.
             */

             /* 테스트 6 : 논리연산자의 피연산자는 boolean type만 될수 있다.
             int i = 10, i2 = 20;
            boolean r = i && i2;
             */

             /* 테스트 7 : &와 | 는 비트 연산자로서도 사용되는 이중성을 가진다.
             int i = 10, i2 = 20;
            boolean r = i & i2;

            // '&' 는 비트 연산자로서 사용됨으로써 결과는 정수가 되고,
            //  따라서, int 값을 boolean 변수에 할당 할수 없다. type이 맞지않는다.
             */
      }
}