결합 방향은 동등한 우선순위에서 어떤 것을 먼저 계산하는지,
우선 순위는 같은 식 안에서 어떤 것을 먼저 계산하는지이다.
[계산]
int num1 = 11;
int num2 = 22;
boolean result;
// 변수 num1에 저장된 값이 1과 100 사이의 수인가?
result = (1 < num1) && (num1 < 100);
System.out.println("1 초과 100 미만인가? " + result);
[결과]
1 초과 100 미만인가? true
int num1 = 4;
boolean result;
result = ((num1 % 2) == 0) || ((num1 % 3) == 0);
system.out.println("2의 배수 또는 3의 배수? " + result);
&&는 and 연산자이고, ||는 or 연산자이다.
class SCE {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
boolean result;
result = ((num1 += 10) < 0) && ((num2 += 10) > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2 + "\n");
result = ((num1 += 10) > 0) || ((num2 += 10) > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
}
정답
result = false
num1 = 10
num2 = 0result = true
num1 = 20
num2 = 0
short num1;
short num = -num;
}
정답
class AssignSteResult {
public static void main(String[] args) {
int num1 = 10, num2 = 20, num3 = 30;
num1 = num2 = num3;
정답
- 연산자는 결합 방향이 오른쪽에서 왼쪽으로 진행된다.
class SCE {
public static void main(String[] args) {
int num1 = 0;
int num2 = 0;
boolean result;
num1 += 10;
num2 += 10;
result = (num1 < 0) && (num2 > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2 + '\n'); // "\n" 개행
num1 += 10;
num2 += 10;
result = (num1 > 0) || (num2 > 0);
System.out.println("result = " + result);
System.out.println("num1 = " + num1);
System.out.println("num2 = " + num2);
}
}
정답
result = false
num1 = 10
num2 = 10result = true
num1 = 20
num2 = 20
class AddNum {
public static void main(String[] args) {
int result = 3 + 6;
System.out.println("3 + 6 = " + result);
result += 9;
System.out.println("3 + 6 + 9 = " + result);
result += 12;
System.out.println("3 + 6 + 9 + 12 = " + result);
}
}
정답
3 + 6 = 9
3 + 6 + 9 = 18
3 + 6 + 9 + 12 = 30