자바-기본 연산자

Java는 변수를 조작 할 수있는 풍부한 연산자 세트를 제공합니다. 모든 Java 연산자를 다음 그룹으로 나눌 수 있습니다.

  • 산술 연산자
  • 관계 연산자
  • 비트 연산자
  • 논리 연산자
  • 할당 연산자
  • 기타 연산자

산술 연산자

산술 연산자는 대수에서 사용되는 것과 같은 방식으로 수학 표현식에서 사용됩니다. 다음 표는 산술 연산자를 나열합니다-

정수 변수 A가 10을 보유하고 변수 B가 20을 보유한다고 가정하면-

예시보기

운영자 기술
+ (더하기) 연산자의 양쪽에 값을 추가합니다. A + B는 30을 줄 것입니다
-(빼기) 왼쪽 피연산자에서 오른쪽 피연산자를 뺍니다. A-B는 -10을 줄 것입니다.
* (곱하기) 연산자의 양쪽에있는 값을 곱합니다. A * B는 200을 줄 것입니다
/ (나누기) 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다. B / A는 2를 줄 것입니다
% (모듈러스) 왼쪽 피연산자를 오른쪽 피연산자로 나누고 나머지를 반환합니다. B % A는 0을 제공합니다.
++ (증가) 피연산자의 값을 1 씩 증가시킵니다. B ++는 21을 제공합니다.
-(감소) 피연산자의 값을 1 씩 줄입니다. B-- 19를 준다

관계 연산자

Java 언어에서 지원하는 다음과 같은 관계 연산자가 있습니다.

변수 A가 10을 보유하고 변수 B가 20을 보유한다고 가정하면-

예시보기

운영자 기술
== (같음) 두 피연산자의 값이 같은지 확인하고, 예이면 조건이 참이됩니다. (A == B)는 사실이 아닙니다.
! = (같지 않음) 두 피연산자의 값이 같은지 확인하고, 값이 같지 않으면 조건이 참이됩니다. (A! = B)는 참입니다.
> (보다 큼) 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인하고, 그렇다면 조건이 참이됩니다. (A> B)는 사실이 아닙니다.
<(보다 작음) 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작은 지 확인하고, 그렇다면 조건이 참이됩니다. (A <B)는 사실입니다.
> = (크거나 같음) 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인하고, 그렇다면 조건이 참이됩니다. (A> = B)는 사실이 아닙니다.
<= (작거나 같음) 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같은지 확인하고, 그렇다면 조건이 참이됩니다. (A <= B)는 참입니다.

비트 연산자

Java는 정수 유형 인 long, int, short, char 및 byte에 적용 할 수있는 여러 비트 연산자를 정의합니다.

비트 연산자는 비트에서 작동하고 비트 단위 연산을 수행합니다. a = 60이고 b = 13이라고 가정합니다. 이제 바이너리 형식으로 다음과 같습니다.

a = 0011 1100

b = 0000 1101

-----------------

a & b = 0000 1100

a | b = 0011 1101

a ^ b = 0011 0001

~ a = 1100 0011

다음 표는 비트 연산자를 나열합니다.

정수 변수 A가 60을 보유하고 변수 B가 13을 보유한다고 가정하면-

예시보기

운영자 기술
& (비트 및) 이진 AND 연산자는 두 피연산자에 모두있는 경우 결과에 비트를 복사합니다. (A & B)는 0000 1100 인 12를 줄 것입니다.
| (비트 OR) 이진 OR 연산자는 피연산자 중 하나에 있으면 비트를 복사합니다. (A | B)는 0011 1101 인 61을 제공합니다.
^ (비트 XOR) 이진 XOR 연산자는 하나의 피연산자에 설정된 경우 비트를 복사합니다. (A ^ B)는 0011 0001 인 49를 제공합니다.
~ (비트 칭찬) Binary Ones Complement Operator는 단항이며 비트를 '뒤집는'효과가 있습니다. (~ A)는 부호있는 이진수로 인해 2의 보수 형식으로 1100 0011 인 -61을 제공합니다.
<< (왼쪽 이동) 이진 왼쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자에 지정된 비트 수만큼 왼쪽으로 이동합니다. << 2는 1111 0000 인 240을 제공합니다.
>> (오른쪽 이동) 이진 오른쪽 시프트 연산자. 왼쪽 피연산자 값은 오른쪽 피연산자에 지정된 비트 수만큼 오른쪽으로 이동합니다. A >> 2는 1111 인 15를 제공합니다.
>>> (제로 채우기 오른쪽 시프트) 오른쪽 0 채우기 연산자를 시프트합니다. 왼쪽 피연산자 값은 오른쪽 피연산자에 지정된 비트 수만큼 오른쪽으로 이동하고 이동 된 값은 0으로 채워집니다. >>> 2는 0000 1111 인 15를 제공합니다.

논리 연산자

다음 표는 논리 연산자를 나열합니다-

부울 변수 A가 참이고 변수 B가 거짓이라고 가정하면-

예시보기

운영자 기술
&& (논리적 and) 논리 AND 연산자라고합니다. 두 피연산자가 모두 0이 아니면 조건이 참이됩니다. (A && B)는 거짓입니다.
|| (논리적 또는) 논리 OR 연산자라고합니다. 두 피연산자 중 하나가 0이 아니면 조건이 참이됩니다. (A || B) 참
! (논리적 아님) 논리 NOT 연산자라고합니다. 피연산자의 논리 상태를 반전하는 데 사용합니다. 조건이 참이면 논리 NOT 연산자는 거짓으로 만듭니다. ! (A && B)가 참

할당 연산자

다음은 Java 언어에서 지원하는 할당 연산자입니다-

예시보기

운영자 기술
= 간단한 할당 연산자. 오른쪽 피연산자의 값을 왼쪽 피연산자에 할당합니다. C = A + B는 A + B의 값을 C에 할당합니다.
+ = AND 할당 연산자를 추가합니다. 왼쪽 피연산자에 오른쪽 피연산자를 추가하고 결과를 왼쪽 피연산자에 할당합니다. C + = A는 C = C + A와 같습니다.
-= AND 할당 연산자를 뺍니다. 왼쪽 피연산자에서 오른쪽 피연산자를 빼고 결과를 왼쪽 피연산자에 할당합니다. C-= A는 C = C – A와 같습니다.
* = 곱하기 AND 할당 연산자. 오른쪽 피연산자와 왼쪽 피연산자를 곱하고 결과를 왼쪽 피연산자에 할당합니다. C * = A는 C = C * A와 같습니다.
/ = AND 할당 연산자를 나눕니다. 왼쪽 피연산자를 오른쪽 피연산자로 나누고 결과를 왼쪽 피연산자에 할당합니다. C / = A는 C = C / A와 같습니다.
% = 계수 AND 할당 연산자. 두 개의 피연산자를 사용하여 모듈러스를 취하고 결과를 왼쪽 피연산자에 할당합니다. C % = A는 C = C % A와 같습니다.
<< = 왼쪽 시프트 AND 할당 연산자. C << = 2는 C = C << 2와 동일합니다.
>> = 오른쪽 시프트 AND 할당 연산자. C >> = 2는 C = C >> 2와 동일합니다.
& = 비트 AND 대입 연산자. C & = 2는 C = C & 2와 동일합니다.
^ = 비트 배타적 OR 및 할당 연산자. C ^ = 2는 C = C ^ 2와 같습니다.
| = 비트 포함 OR 및 할당 연산자. C | = 2는 C = C | 2

기타 연산자

Java 언어에서 지원하는 다른 연산자는 거의 없습니다.

조건부 연산자 (? :)

조건부 연산자는 ternary operator. 이 연산자는 세 개의 피연산자로 구성되며 부울 표현식을 평가하는 데 사용됩니다. 연산자의 목표는 변수에 할당 할 값을 결정하는 것입니다. 연산자는 다음과 같이 작성됩니다.

variable x = (expression) ? value if true : value if false

다음은 예입니다-

Example

public class Test {

   public static void main(String args[]) {
      int a, b;
      a = 10;
      b = (a == 1) ? 20: 30;
      System.out.println( "Value of b is : " +  b );

      b = (a == 10) ? 20: 30;
      System.out.println( "Value of b is : " + b );
   }
}

이것은 다음 결과를 생성합니다-

Output

Value of b is : 30
Value of b is : 20

instanceof 연산자

이 연산자는 객체 참조 변수에만 사용됩니다. 연산자는 객체가 특정 유형 (클래스 유형 또는 인터페이스 유형)인지 확인합니다. instanceof 연산자는-

( Object reference variable ) instanceof  (class/interface type)

연산자 왼쪽의 변수가 참조하는 객체가 오른쪽의 클래스 / 인터페이스 유형에 대한 IS-A 검사를 통과하면 결과가 참이됩니다. 다음은 예입니다-

Example

public class Test {

   public static void main(String args[]) {

      String name = "James";

      // following will return true since name is type of String
      boolean result = name instanceof String;
      System.out.println( result );
   }
}

이것은 다음 결과를 생성합니다-

Output

true

이 연산자는 비교되는 객체가 오른쪽의 유형과 호환되는 할당 인 경우 여전히 true를 반환합니다. 다음은 또 하나의 예입니다.

Example

class Vehicle {}

public class Car extends Vehicle {

   public static void main(String args[]) {

      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result );
   }
}

이것은 다음 결과를 생성합니다-

Output

true

Java 연산자의 우선 순위

연산자 우선 순위는 식의 용어 그룹화를 결정합니다. 이는식이 평가되는 방식에 영향을줍니다. 특정 연산자는 다른 연산자보다 우선 순위가 높습니다. 예를 들어 곱셈 연산자는 더하기 연산자보다 우선 순위가 높습니다.

예를 들어, x = 7 + 3 * 2; 여기서 x는 20이 아니라 13으로 할당됩니다. 연산자 *는 +보다 우선 순위가 높기 때문에 먼저 3 * 2를 곱한 다음 7에 더합니다.

여기에서 우선 순위가 가장 높은 연산자는 테이블 맨 위에 표시되고 가장 낮은 연산자는 맨 아래에 표시됩니다. 식 내에서 우선 순위가 높은 연산자가 먼저 평가됩니다.

범주 운영자 연관성
접미사 식 ++ 식- 좌에서 우로
단항 ++ 식 –- 식 + 식 – 식 ~! 오른쪽에서 왼쪽으로
곱셈 * / % 좌에서 우로
첨가물 +- 좌에서 우로
시프트 << >> >>> 좌에서 우로
관계형 <> <=> = instanceof 좌에서 우로
평등 ==! = 좌에서 우로
비트 AND & 좌에서 우로
비트 XOR ^ 좌에서 우로
비트 OR | 좌에서 우로
논리적 AND && 좌에서 우로
논리적 OR || 좌에서 우로
가정 어구 ? : 오른쪽에서 왼쪽으로
할당 = + =-= * = / = % = ^ = | = << = >> = >>> = 오른쪽에서 왼쪽으로

다음은 무엇입니까?

다음 장에서는 Java 프로그래밍의 루프 제어에 대해 설명합니다. 이 장에서는 다양한 유형의 루프와 이러한 루프를 Java 프로그램 개발에 사용하는 방법과 사용 목적에 대해 설명합니다.