logo

Java에서 가장 높은 우선순위

Java에서 우선순위에 관해 이야기할 때 연산자가 가장 먼저 떠오릅니다. 표현식의 연산자가 평가되는 순서를 지정하기 위해 Java에는 특정 규칙이 정의되어 있습니다. 연산자 우선순위 표현의 용어 그룹을 결정하는 개념입니다. 연산자 우선 순위는 표현식 평가를 담당합니다. ~ 안에 자바 , 괄호() 그리고 배열 아래첨자[] Java에서는 우선순위가 가장 높습니다. 예를 들어 더하기 및 빼기는 왼쪽 시프트 및 오른쪽 시프트 연산자보다 우선순위가 높습니다.

Java에서 가장 높은 우선순위

아래에는 우선 순위가 가장 낮은 연산자가 맨 위에 표시되도록 정의된 테이블이 있습니다.

상위 운영자 유형 연관성
1) =
+=
-=
*=
/=
%=
과제
추가 과제
빼기 할당
곱셈 할당
부서 배정
모듈러스 할당
오른쪽에서 왼쪽으로
2) ? : 삼항 조건부 오른쪽에서 왼쪽으로
삼) || 논리적 OR 왼쪽에서 오른쪽으로
4) && 논리 AND 왼쪽에서 오른쪽으로
5) | 비트 단위 포함 OR 왼쪽에서 오른쪽으로
6) ^ 비트별 배타적 OR 왼쪽에서 오른쪽으로
7) & 비트별 AND 왼쪽에서 오른쪽으로
8) !=
==
관계형이 다음과 같지 않음
관계형은 다음과 같습니다.
왼쪽에서 오른쪽으로
9) <
<=
>
>=
대신에
관계형 미만
관계형 작거나 같음
다음보다 큰 관계형
보다 크거나 같음 관계형
유형 비교(객체만 해당)
왼쪽에서 오른쪽으로
10) >>
<<
>>>
부호 확장을 사용한 비트 단위 오른쪽 시프트
비트 왼쪽 시프트
확장이 0인 비트 단위 오른쪽 시프트
왼쪽에서 오른쪽으로
열하나) -
+
빼기
덧셈
왼쪽에서 오른쪽으로
12) *
/
%
곱셈
분할
계수
왼쪽에서 오른쪽으로
13) -
+
~
!
( 유형)
단항 마이너스
단항 플러스
단항 비트 보수
단항 논리 부정
단항 타입캐스트
오른쪽에서 왼쪽으로
14) ++
--
단항 후증가
단항 후감소
오른쪽에서 왼쪽으로
열 다섯) ·
()
[]
도트 연산자
괄호
배열 첨자
왼쪽에서 오른쪽으로

우선순위

두 연산자가 단일 피연산자를 공유하는 경우 우선 순위가 가장 높은 연산자가 먼저 적용됩니다. 예를 들어, x + y * z는 x + (y * z)로 처리되는 반면, x * y + z는 (x * y) + z로 처리됩니다. 왜냐하면 * 연산자가 + 연산자에 비해 우선순위가 가장 높기 때문입니다.

Java에서 null을 확인하십시오.

연관성

연관(Associative)은 동일한 우선순위를 갖는 두 연산자가 표현식에 올 때 적용되는 연산자와 관련된 개념입니다. 연관성 개념은 그러한 상황에서 벗어나는 데 매우 도움이 됩니다. a + b - c 표현식이 있다고 가정합니다. (+와 - 연산자는 우선순위가 동일합니다) , 이 표현식은 다음과 같이 처리됩니다. (a + (b - c)) 왜냐하면 이 연산자들은 오른쪽에서 왼쪽으로 결합하기 때문입니다. 반면에 a++++--b+c++는 다음과 같이 처리됩니다. ((a++)+((--b)+(c++))) 단항 후단 증가 및 감소 연산자는 오른쪽에서 왼쪽 결합이기 때문입니다.

우선 순위와 연관성을 사용하여 표현식이 평가되는 방법을 이해하기 위해 아래에 예가 정의되어 있습니다.

식: x = 4 / 2 + 8 * 4 - ( 5+ 2 ) % 3

해결책:

1) 위 식에서 우선순위가 가장 높은 연산자는 () . 따라서 괄호가 먼저 오고 먼저 계산됩니다.

x = 4 / 2 + 8 * 4 - 7% 3

2) 이제, /, * 그리고 % 연산자는 동일한 우선순위를 갖고 가장 높은 우선순위를 갖습니다. + 그리고 - 여기서는 연관성 개념을 사용하여 이를 해결합니다. 이러한 연산자의 결합은 왼쪽에서 오른쪽으로 이루어집니다. 그래서, / 운영자가 먼저 가고 그 다음 * 그리고 % 동시에.

x = 2 + 8 * 4 - 7% 3

x = 2 + 32 - 7% 3

자바의 삽입 정렬

x = 2 + 32 - 1

3) 이제, + 그리고 - 두 연산자 모두 동일한 우선 순위를 가지며 이러한 연산자의 연관성은 오른쪽으로 향하지 않습니다. 그래서, + 교환원이 먼저 가고 그 다음 - 갈 것이다.

형식이 있는 Java 문자열

엑스 = 34 - 1

엑스 = 33

최고우선순위.java

 //import classes import java.util.*; //creating HighestPrecedence class to evaluate the expression public class HighestPrecedence { //main() method starts public static void main(String[] args) { //initialize variables with default values int x = 2; int y = 5; int z = 12; //calculating exp1, exp2, and exp3 int exp1 = x +(z/x+(z%y)*(z-x)^2); int exp2 = z/x+y*x-(y+x)%z; int exp3 = 4/2+8*4-(5+2)%3; //printing the result System.out.println(exp1); System.out.println(exp2); System.out.println(exp3); } } 

산출

Java에서 가장 높은 우선순위