JavaRush /Java Blog /Random-KO /Java의 숫자 연산

Java의 숫자 연산

Random-KO 그룹에 게시되었습니다
안녕하세요! 오늘 우리는 매우 중요한 주제, 즉 Java의 숫자 연산을 살펴볼 것입니다 . 숫자는 프로그래밍의 모든 곳에 있습니다. 학교 커리큘럼을 자세히 살펴보면 컴퓨터의 모든 정보가 이진 코드라고도 하는 숫자 형식(0과 1의 조합)으로 표시된다는 사실을 기억하실 것입니다. Java의 숫자 연산 - 2프로그래밍에는 숫자에 대한 연산이 매우 많기 때문에 그 중 가장 중요한 연산을 예제를 통해 살펴보겠습니다. :)

산술 연산

산술 연산을 통해 가장 간단한 것부터 시작해 보겠습니다. 잘 알려진 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/)이 그것이다.
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
콘솔 출력:

1032
966
32967
30
당신은 이미 이 모든 것을 사용했습니다. %분할의 나머지 부분 에 작업을 추가할 수 있습니다 .
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
콘솔 출력:

1
이 예에서는 33을 2로 나눕니다. 결과적으로 16을 얻고 2-1로 나눌 수 없는 추가 "꼬리"가 남습니다. 이 "꼬리"는 "나누기의 나머지" 작업의 결과입니다. Java(수학과 마찬가지로)는 비교 연산자를 구현합니다 . 당신은 아마도 학교에서 그것들을 알고 있을 것입니다:
  • 같음 ( ==)
  • 더 ( >)
  • 더 적은 ( <)
  • >=( ) 이상
  • <=( ) 이하
  • 같지 않음 ( !=)
여기서 많은 초보자가 실수하는 중요한 점 하나에 주목할 가치가 있습니다. "같음" 연산은 ==하나의 부호가 아닌 으로 작성됩니다 =. Java의 단위 기호는 =변수에 숫자, 문자열 또는 다른 변수의 값이 할당되는 할당 연산자입니다. Java의 숫자 연산 - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// expect false to be printed to the console
   }
}
콘솔 출력:

999
이런! 이는 분명히 우리가 기대했던 결과가 아닙니다. 이것은 완전히 다른 유형의 데이터입니다. 우리는 를 볼 것으로 예상했지만 boolean숫자를 얻었습니다. 괄호 안에는 비교가 아닌 할당 연산이 있기 때문입니다. x=yy(999)이 변수에 할당된 x다음 이를 x콘솔에 인쇄했습니다. 올바른 옵션:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
콘솔 출력:

false
이제 우리는 두 숫자를 정확하게 비교했습니다! :) 할당 작업( =)의 또 다른 특징은 "체인"으로 수행할 수 있다는 것입니다.
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
콘솔 출력:

256
기억하세요: 할당은 오른쪽에서 왼쪽으로 이루어집니다. 이 표현식( x = y = z)은 다음 단계로 실행됩니다.
  • y = z, 즉 y = 256
  • x = y, 즉 x = 256

단항 연산

그들은 "uno"- "one"이라는 단어에서 "단항"이라고 불립니다. 이전 이름과 달리 여러 번호가 아닌 하나의 번호로 수행되기 때문에 이 이름을 받았습니다. 여기에는 다음이 포함됩니다.
  • 단항 마이너스. 숫자의 부호를 반대로 바꿉니다.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
    
           // change the sign for the first time
           x = -x;
           System.out.println(x);
    
           // change the sign a second time
           x= -x;
           System.out.println(x);
       }
    }

    콘솔 출력:

    
    -999
    999

    우리는 단항 마이너스를 두 번 사용했습니다. 결과적으로 우리 숫자는 처음에는 마이너스가 되었다가 다시 플러스가 되었습니다!

  • 증가( ++) 및 감소( --)

    연산은 ++숫자를 1씩 증가시키고, 연산은 --동일한 단위만큼 감소시킵니다.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
           x++;
           System.out.println(x);
    
           x--;
           System.out.println(x);
       }
    }

    콘솔 출력:

    
    1000
    999
C++ 언어에 대해 들어본 적이 있다면 이러한 형식의 표기법이 익숙할 것입니다. 이러한 흥미로운 이름의 도움으로 제작자는 "C++는 C 언어의 확장입니다."라는 아이디어를 전달했습니다. Notepad의 인기 있는 개선된 버전은 Notepad++입니다. 중요한 점. 증가 및 감소 연산에는 후위와 접두사의 두 가지 유형이 있습니다. x++- 후위 표기법 ++x- 접두사 표기법 숫자 앞이나 뒤에 플러스와 마이너스를 넣으면 근본적인 차이점은 무엇인가요? 예를 들어 보겠습니다.
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
콘솔 출력:

999
뭔가 문제가 있는 걸까요? 우리는 1씩 증가 x하고 변수에 새로운 값을 할당하고 싶었습니다 y. 즉, y는 1000과 같아야 합니다. 그러나 결과는 999입니다. x증가하지 않았으며 증가 연산이 작동하지 않은 것으로 밝혀졌습니다. 작동 방식. 이를 확인하려면 마지막에 콘솔에 x를 인쇄해 보세요. :)
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
콘솔 출력:

999
1000
사실, 이것이 접미사 연산을 그런 식으로 부르는 이유입니다. 즉, 주 표현식 다음에 수행됩니다. 즉, 우리의 경우에는 int y = x++; 먼저 실행되고 y = x(변수 y에는 원래 값이 할당됨 x) 그런 다음에만 x++ 이 동작이 만족스럽지 않으면 어떻게 될까요? 접두사 표기법을 사용해야 합니다.
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
이 경우 먼저 작동 ++x 하고 그 후에만 작동합니다. y = x; 이 차이점은 이로 인해 모든 동작이 뒤집어질 수 있는 실제 프로그램에서 실수를 하지 않도록 즉시 기억할 가치가 있습니다. :)

결합된 작업

또한 Java에는 소위 결합 작업이 있습니다. 두 가지 작업을 조합하여 사용합니다.
  • 과제
  • 산술 연산
여기에는 다음 작업이 포함됩니다.
  • +=
  • -=
  • *=
  • /=
  • %=
예를 살펴보겠습니다:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
콘솔 출력:

1032
x += y수단 x = x + y. 간결함을 위해 연속된 두 문자가 사용됩니다. -=이는 , *=/=의 조합에서도 작동합니다 %=.

논리 연산

숫자에 대한 연산 외에도 Java에는 부울 변수 true및 에 대한 연산도 있습니다 false. 이러한 작업은 논리 연산자를 사용하여 수행됩니다.
  • !— "NOT" 연산자. 부울 변수의 값을 반대로 바꿉니다.

    public class Main {
    
       public static void main(String[] args) {
    
           boolean x = true;
           System.out.println(!x);
       }
    }

    콘솔 출력:

    
    false

  • &&— 연산자 “AND”. true두 피연산자가 모두 인 경우 에만 값을 반환합니다 true.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 && 100 > 200);
           System.out.println(100 > 50 && 100 >= 100);
       }
    }

    콘솔 출력:

    
    false
    true

    false조건 중 하나가 거짓, 즉 100 > 200이기 때문에 첫 번째 연산의 결과는 입니다. 연산자는 를 &&반환하려면 true모든 조건이 참(예를 들어 두 번째 줄에서와 같이)이어야 합니다 .

  • ||— "OR" 연산자. true피연산자 중 하나 이상이 true인 경우를 반환합니다 .

    이전 예제는 다르게 작동합니다.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 || 100 > 200);
       }
    }

    콘솔 출력:

    
    true

    100 > 200이라는 표현은 여전히 ​​거짓이지만 "or" 연산자는 첫 번째 부분(100 > 10)이 참이라는 점에 상당히 만족합니다.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION