본문 바로가기

개발/JAVA

[JAVA] #07. 논리 연산자 & 삼항 연산자

논리 연산자

■ 논리 연산자

  • 논리곱 (&&, &) - 피연산자가 모두 true일 경우에만 연산 결과가 true 이다.

    • System.out.println(b1 && b2); -> b2가 false 이므로 결과는 false
    • System.out.println(b1 && b3); -> b1과 b2 모두 true 이므로 결과는 true
  • 논리합 (||,|) - 피연산자 중 하나만 true이면 연산 결과는 true 이다.

    • System.out.println(b1 || b2); -> b1 이 true이므로 결과는 true 이다.
  • 배타적 논리합 () -> 피연산자가 서로 다른 값일 경우만 연산 결과가 true 이다.

    • System.out.println(b1 ^ b2); -> b1은 true, b2는 false로 서로 다르므로 결과는 true 이다.
    • System.out.println(b1 ^ b3); -> b1, b3 모두 true로 서로 같다. 결과는false 이다
  • 논리 부정 (!) -> 피연산자의 논리값을 바꾼다. true는 false로 false는 true로 바꾼다.

    • System.out.println(!b1); -> b1 이 true 이므로 결과는 false 이다.
    • System.out.println(!b2); -> b1 이 false 이므로 결과는 true 이다.
    •  
package main;


public class mainClass {


public static void main(String[] args) {


// 논리 연산자(true/false)

/*


&& AND 그리고

|| OR 또는

! NOT ~아닌


제어문과 같이 사용(if, while, do while)


< > <= >= == : 비교 연산자


*/


int number = 0;


/*

AND
0 0 -> 0 (0이 false, 1이 true)

0 1 -> 0

1 0 -> 0

1 1 -> 1

*/


System.out.println( number > 0 && number < 10);


/*

OR
0 0 -> 0

0 1 -> 1

1 0 -> 1

1 1 -> 1




*/


System.out.println( number > 0 || number < 10);



/*

(제일 헷깔리는 연산, 하지만 단순하게 사용된다, 사용 많이 한다)


NOT 0 -> 1, 1 -> 0 으로 만들어주는 기능


*/


number = 5;

System.out.println(number == 5);

System.out.println(number != 5);


System.out.println( !(number > 5 && number < 10) );


System.out.println( !(number < 5) );

// number >= 5 와 같은 뜻임




 


■ 삼항 연산자 :: 조건에 따라서 값을 대입한다.

 

▶ value = ( 조건 ) ? '값1' : '값2' ;

==> 항이 3개 있다고 해서 3항 연산자이다. 조건에 따라 값1을 넣거나 값2를 취한다.

조건식 ? 식1 : 식2

-> true이면 식1, false이면 식2

 

class Ex3_17 {
	public static void main(String args[]) { 
		int  x, y, z;
		int  absX, absY, absZ;
		char signX, signY, signZ;

		x = 10;
		y = -5;
		z = 0;

		absX = x >= 0 ? x : -x;  // x의 값이 음수이면, 양수로 만든다
		absY = y >= 0 ? y : -y;
		absZ = z >= 0 ? z : -z;
		signX = x > 0 ? '+' : ( x==0 ? ' ' : '-');  // 조건 연산자를 중첩
		signY = y > 0 ? '+' : ( y==0 ? ' ' : '-'); 
		signZ = z > 0 ? '+' : ( z==0 ? ' ' : '-'); 

		System.out.printf("x=%c%d%n", signX, absX);
		System.out.printf("y=%c%d%n", signY, absY);
		System.out.printf("z=%c%d%n", signZ, absZ);
	}
}

 

=====

x=+10

y=-5

z= 0

 


char c;

c = (number > 0) ? 'Y' : 'N';
System.out.println("c = " + c);

int n;


n = (number < 5) ? 10:20;
System.out.println("n = " + n);


String str;
str = (number > 3) ? "3보다 크다" : "3보다 작다";
System.out.println("str = " + str);

char str2;
str2 = (n <= 3)? 'O' : 'X';
System.out.println("str2 = " + str2);


}

}


**3가지의 경우를 나타낼 수 있는 삼항 연산자

System.out.println(num > 0 ? " 양수 ":(num < 0 ? " 음수 " : "0"));