이전 내용에서는 변수를 정의하고 초기화하는 방법을 배웠습니다. 변수를 정의하는 목적은 데이터를 조작하는 것입니다. Java Language는 공동으로 "연산자"라고하는 이러한 데이터를 수행하는 데 특별히 사용되는 코드 기호를 제공합니다.
운영자의 사용에 따르면, 우리는 그것들을 다음 범주로 나눌 수 있습니다.
산술 연산자
과제 연산자
자체 증가 및 자체 추출 연산자
논리 연산자
관계형 운영자
비트 연산자
걱정하지 마십시오. 작업 데이터를 처리하는 데 도움이되는 기호 일뿐입니다. 다음은 코드 예제를 사용하여 이러한 연산자의 사용을 하나씩 설명합니다.
1. 산술 연산자
산술 연산자는 추가, 빼기, 곱하기, 분열 및 나머지 숫자 변수를 취하는 산술 작업입니다.
추가 : +
줄이다:-
가져가다:*
제거하다:/
균형 잡기 : %
공개 클래스 운영자 demo {public static void main (String [] args) {int num1 = 100; int num2 = 20; // system.out.println을 추가합니다 ( "num1 + num2 :" + (num1 + num2)); // SUTMARTE SYSTEM.out.println ( "Num1 -Num2 :" + (num1 -num2)); // system.out.println ( "num1 * num2 :" + (num1 * num2)); // 할인 system.out.println ( "num1 / num2 :" + (num1 / num2)); // 나머지 System.out.println ( "num1 % num2 :" + (num1 % num2)); }}출력 결과 :
num1 + num2 : 120num1 -num2 : 80num1 * num2 : 2000num1 / num2 : 5num1 % num2 : 0
2. 할당 연산자
대부분의 프로그래밍 언어와 마찬가지로 Java는 '='연산자를 사용하여 할당 작업을 수행합니다. 이 작업은 오른쪽에 계산 결과를 왼쪽의 변수에 할당합니다. Java의 과제 연산자는 다음과 같습니다.
= (num2 = num1)
+= (num2 += num1 동등한 num2 = num2 +num1)
-= (num2 -= num1 동등한 num2 = num2 -num1)
*= (num2 *= num1 동등한 num2 = num2 *num1)
/= (num2 /= num1 동등한 num2 = num2 /num1)
%= (num2 %= num1 동등한 num2 = num2 %num1)
공개 클래스 연산자 sdemo {public static void main (String [] args) {int num1 = 10; int num2 = 20; num2 = num1; System.out.println ( "= 출력 :"+num2); num2 += num1; System.out.println ( "+= 출력 :"+num2); num2- = num1; System.out.println ( "-= 출력 :"+num2); num2 *= num1; System.out.println ( "*= 출력 :"+num2); num2 /= num1; System.out.println ( "/= 출력 :"+num2); num2 %= num1; System.out.println ( "%= 출력 :"+num2); }}결과 출력 :
= 출력 : 10+= 출력 : 20- = 출력 : 10*= 출력 : 100/= 출력 : 10%= 출력 : 0
3. 자체 증가 및 자체 추출 연산자
자체 증가 및 자체 추출 연산자는 하나의 변수에서만 작동하며 변수의 값은 변경됩니다.
NUM ++ (동등한 NUM = NUM+ 1)는 주로 숫자 변수에 대해 자체적으로 증가하여 자체 변수의 값에 1을 추가합니다.
NUM -(동등한 NUM = NUM -1) 자체 분해, 주로 숫자 변수를 대상으로 신체 변수의 값을 1만큼 빼냅니다.
공개 클래스 운영자 demo {public static void main (String [] args) {int num1 = 100; int num2 = 200; num1 ++; num2--; System.out.println ( "Num1 ++는 :"+num1); System.out.println ( "Num2--"+num2); }}결과 출력 :
Num1 ++는 : 101num2-- 199
4. 논리 연산자
이름에서 알 수 있듯이 논리 연산자는 논리적 판단에 사용됩니다. 작업의 결과는 부울 유형의 값, 즉 참 또는 거짓의 값입니다. 논리적 통일 연산자가 있습니다
| 논리 연산자 | 논리적 관계 |
|---|---|
| && | 그리고 |
| ` | |
| ! | 아니요 |
B1 && B2 : B1과 B2가 모두 참이면 B1 && B2는 true를 반환합니다. 그렇지 않으면 거짓
B1 || B2 : B1과 B2가 모두 False 인 경우 False가 반환됩니다. 그렇지 않으면 True가 반환됩니다.
! B1 : B1이 False 인 경우 B1과 반대되는 값을 반환합니다. B1이 참이면 False를 반환하십시오
공개 클래스 운영자 demo {public static void main (String [] args) {boolean b1 = true; 부울 B2 = 거짓; System.out.println ( "b1 && b2 :" + (b1 && b2)); System.out.println ( "B1 || b2 :" + (b1 || b2)); System.out.println ( "! (b1 && b2) :" +! (b1 && b2)); }}출력 결과 :
b1 && b2 : falseb1 || B2 : True! (B1 && B2) : True
논리적 단락 :
Java에서 논리 연산자는 단락 작업을 지원하며 전체 표현식의 값을 명확하게 표현할 수 있으면 나머지 표현식을 계산할 필요가 없습니다. 예를 들어, 우리는 객체가 비어 있지 않으며 메소드의 반환 값이 비어 있지 않다고 판단해야하므로 다음과 같은 판단을 할 수 있습니다.
if (object! = null && 객체 .somefunction ()! = null) {// 님.}객체가 비어 있으면 첫 번째 부품 expression 객체! = null은 false를 반환합니다. 그런 다음 expression object.somefunction ()! = null의 결과에 관계없이 최종 값은 False입니다. 컴파일러는 작동 의이 부분을 자동으로 최적화하고 Object.SomeFunction ()! = null을 실행하지 않습니다.
5. 관계형 운영자
두 가지 변수 데이터의 크기를 비교하는 데 사용되는 부울 값, 즉 true 또는 false를 반환합니다.
관계형 운영자는 다음과 같습니다.
| 관계형 운영자 | 관계 |
|---|---|
| > | 더 큽니다 |
| < | 보다 적습니다 |
| == | 동일한 |
| ! = | 동일하지 않습니다 |
| > = | 더 크거나 동일합니다 |
| <= | 보다 작거나 동일합니다 |
'=='및 '! ='는 모든 유형의 값과 객체 (예 : 원시 유형 변수 및 기준 유형 변수)에 적합합니다.
'>', '<', '> ='및 '<='부울 유형의 값에는 적용되지 않습니다. 진실 또는 거짓 만 가지고 있지 않기 때문에 실질적인 의미가 없기 때문입니다.
공개 클래스 연산자 sdemo {public static void main (String [] args) {int num1 = 10; int num2 = 50; if (num1 == num2) {System.out.println ( "num1 및 num2가 같다"); } else {system.out.println ( "num1 및 num2는 같지 않다"); } if (num1! = num2) {System.out.println ( "num1 및 num2가 같지 않다"); } else {system.out.println ( "num1 및 num2는 같지 않다"); } else {system.out.println ( "num1 및 num2는 같지 않다"); } equal ");} if (num1> num2) {system.out.println ("num1은 num2보다 큽니다 ");} else {system.out.println ("num1은 num2보다 크지 않습니다 "); num2 ");} if (num1 <num2) {System.out.println ("num1은 num2보다 작음 ");} if (num1 <num2) {system.out.println ("num1은 num1보다 작음 "); System.out.println (num1은 num2 이상 또는 동일합니다} else {system.out.println (num1은}}};출력 결과 :
NUM1 및 NUM2는 동일하지 않으며 NUM2는 동일하지 않아 NUM2NUM1보다 크지 않습니다.
6. 비트 연산자
비트 연산자가 대상으로하는 조작 객체는 이진 "비트"이며, 정수 유형 (int), 길고 짧은, 문자 유형 (char) 및 바이트 유형 (바이트) 및 기타 유형에 적용 할 수 있습니다. 작동 중에 해당 비트 비트 (0 또는 1)는 부울 대수 조작 또는 이동 작업에서 수행됩니다.
| 비트 연산자 | 계산 논리 |
|---|---|
| &이었다. | 및 작동 : 두 피연산자가 모두 1 인 한 비트의 결과는 1이고 그렇지 않으면 0입니다. |
| ` | ` |
| ^ | XOR 작동 : 특정 비트의 경우 두 피연산자가 동일하지 않으면 비트의 결과는 1이면 0입니다. |
| ~ | 비수기 : 비트 보완 운영자는 각 비트의 비트를 뒤집습니다. |
| << | 바이너리 왼쪽 시프트 연산자 : 왼쪽 피연산자는 오른쪽 피연산자로 비트 왼쪽으로 이동합니다. |
| >> | 바이너리 오른쪽 시프트 연산자 : 왼쪽 피연산자는 오른쪽 피연산자에 의해 비트 오른쪽으로 이동됩니다. |
| >>> | 바이너리 오른쪽 변속 제로 보수 연산자 : 왼쪽 피연산자의 값은 오른쪽 피연산자에 의해 지정된 비트 수에 따라 오른쪽으로 이동하고 결과 빈 비트는 0으로 채워집니다. |
계산 논리에 대한 설명은 다소 모호하며 예제를 사용하여 비트 연산자가 계산을 수행하는 방법을보다 명확하게 이해할 수 있습니다. X가 60과 같다고 가정하십시오. Y는 13과 같다. 이진 표현 및 비트 작업 결과는 다음과 같습니다.
x = 0011 1100y = 0000 1101------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>>와 >>>의 차이점에 유의하십시오.
오른쪽 시프트 연산자 >>, 작동 값이 양수 인 경우 0은 높은 위치에 삽입됩니다. 값이 음수 인 경우 1은 높은 위치에 삽입됩니다.
0을 채우려면 오른쪽으로 이동하여 0을 채우십시오. >>>, 양수 또는 부정에 관계없이 높은 위치에 0을 삽입하십시오.
> 비트 작동을 이해하지 못하면 먼저 건너 뛰십시오. 실제로 사용되면 다시 공부할 수 있습니다.
7. 운영자 우선 순위
연산자 우선 순위는 표현식에서 용어 그룹을 결정합니다. 표현이 어떻게 평가되는지에 영향을 미칩니다. 특정 운영자는 다른 연산자보다 우선 순위가 높습니다.
예를 들어, 곱셈 연산자는 추가 연산자보다 우선 순위가 높고 표현 1 + 5 * 6. 연산자의 우선 순위에 따라 컴파일러는 먼저 5 * 6을 계산 한 다음 30 + 1을 계산하고 마지막으로 31을 얻습니다.
다양한 운영자의 우선 순위는 큰 것부터 작은 것입니다.
., (), [] monocular +(오른쪽에서 왼쪽으로 결합), 단금 - (오른쪽에서 왼쪽으로 결합), ++, -, ~,!*, /,% +(왼쪽에서 오른쪽으로 결합) >>, <<, >>> <, <=,> =>,> = & | | | | ||
이러한 복잡한 우선 순위 목록에 대해 걱정하지 마십시오. 대부분의 경우 표현 자체는 우선 순위를 쉽게 볼 수 있습니다. 예를 들어, 할당 작업의 우선 순위가 가장 낮아야합니다. 우선 순위가 명확하지 않은 경우, 원하는 방식으로 우선 순위를 변경할 수 있으므로 운영자 우선 순위를 너무 많이 기억할 필요가 없습니다.
8. 다른 운영자
3 방향 연산자 :
Java의 조건부 운영자는 3 원 운영자이며 그 양식은 다음과 같습니다.
부울 발현? ValueWhentrue : Valuewhenfalse
부울 표현 값이 참이면, 표현식의 값은 Valuewhenrue의 값, 그렇지 않으면 Valuewhenfalse의 값입니다.
예를 들어, x의 절대 값을 계산하려면 다음 코드를 통해 구현할 수 있습니다.
if (x> = 0) {y = x;} else {y = -x;}3 대 연산자를 통해 y = x> = 0 만 설명이 필요합니까? x : -x; 그것을 완성하기 위해, 그것은 더 간결합니다.
변환 연산자 유형 :
우리는 많은 경우에 유형 변환을 사용합니다. 적절한 시간에 Java는 데이터 유형에 따라 데이터 유형을 다른 유형으로 자동 변환합니다. 예를 들어, 정수 값을 플로트 변수에 할당하면 컴파일러가 int를 플로트로 변환하여 변수로 할당합니다.
그러나 대부분의 경우 Java는 유형 변환을 수행 해야하는지 여부를 결정할 수 없습니다. 현재 유형 변환 연산자가 필요합니다. 이는 다음과 같은 유형 변환을 명시 적으로 수행 할 수 있습니다.
int a = 10; 긴 b = (긴) a; 긴 c = (긴) 100;
변수와 상수를 모두 변환 할 수 있습니다.
부동 소수점 수의 유형 변환을 수행 할 때는 잘린 문제에주의를 기울여야합니다. 변환 10.9 : (int) 10.9를 입력하려면 그 값은 11 개가 아니라 10입니다.