*메소드 안에서는 변수(지역변수)를 선언한 후 초기화하지 않고 사용하면 아래와 같은 오류가 발생
java: variable 변수명 might not have been initialized
*지역 변수는 반드시 초기화를 하고 사용해야 한다.
클래스 안에 선언된 변수는 필드(field)라 말하고 초기화를 하지 않아도 사용이 가능하다.
10 > 5
boolean flag = false;
flag = 10 > 5;
public class BooleanTest1 {
public static void main(String[] args) {
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
boolean flag4 = false;
boolean flag5 = false;
flag1 = 10 > 5;
flag2 = 10 < 5;
flag3 = 10 >= 5;
flag4 = 10 <= 5;
flag5 = 10 == 5;
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
System.out.println(flag4);
System.out.println(flag5);
}
}
true
false
true
false
false
true
false
true
false
false
a > 20 && a < 50
a > 20 || a < 50
a > 10 ^ a < 20
boolean a = !(10 > 5);
-> a는 false가 됨
x = true, y = true일 때 :
x && y는 true,
x & y는 true,
x || y는 true,
x | y는 true,
x ^ y는 false,
!x는 false
x = true, y = false일 때 :
x && y는 false,
x & y는 false,
x || y는 true,
x | y는 true,
x ^ y는 true,
!x는 false
x = false, y = true일 때 :
x && y는 false,
x & y는 false,
x || y는 true,
x | y는 true,
x ^ y는 true,
!x는 true
x = false, y = false일 때 :
x && y는 false,
x & y는 false,
x || y는 false,
x | y는 false,
x ^ y는 false,
!x는 true
public class BooleanTest2 {
public static void main(String[] args) {
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
boolean flag4 = false;
boolean flag5 = false;
boolean flag6 = false;
flag1 = 10 > 5 && 5 < 20;
flag2 = 10 > 5 & 5 < 20;
flag3 = 10 >= 5 || 5 > 6;
flag4 = 10 >= 5 | 5 > 6;
flag5 = 10 == 5 ^ 5 == 4;
flag6 = !flag5;
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
System.out.println(flag4);
System.out.println(flag5);
System.out.println(flag6);
}
}
true
true
true
true
false
true
true
true
true
true
false
true
*&&와 &, ||와 |의 결과는 같게 나오지만 JVM은 실행을 다르게 한다.
1) &가 2개 사용될 경우(&&) : 앞의 식이 거짓이면 뒤에 있는 식은 실행하지 않는다. (한 쪽만 거짓이어도 더이상 실행할 필요가 없기 때문)
2) &가 1개 사용될 경우(&) : 앞의 식이 거짓이어도 뒤의 식이 실행된다.
3) |가 2개 사용될 경우(||) : 앞의 식이 참이면 뒤에 있는 식은 실행되지 않는다. (어느 한 쪽만 참이면 참이라서 더이상 실행할 필요가 없기 때문)
4) |가 1개 사용될 경우(|) : 앞의 식이 참일 경우라도 뒤의 식이 실행된다.
→ 결과는 같게 나오지만, 뒤의 식에 수식 등이 들어갈 경우 즉, 수식에 증가, 감소되는 식이 있으면 실행이 되고 안 되고에 따라서 문제가 될 수도 있음
&&와 &의 차이점은 앞의 식이 거짓일 때 뒤에 있는 식을 실행하느냐, 안 하느냐라는 차이가 있다.