안녕하세요! 오늘 우리는 매우 중요한 주제, 즉 Java의 숫자 연산을 살펴볼 것입니다 . 숫자는 프로그래밍의 모든 곳에 있습니다. 학교 커리큘럼을 자세히 살펴보면 컴퓨터의 모든 정보가 이진 코드라고도 하는 숫자 형식(0과 1의 조합)으로 표시된다는 사실을 기억하실 것입니다. 프로그래밍에는 숫자에 대한 연산이 매우 많기 때문에 그 중 가장 중요한 연산을 예제를 통해 살펴보겠습니다. :)
산술 연산
산술 연산을 통해 가장 간단한 것부터 시작해 보겠습니다. 잘 알려진 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/)이 그것이다.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의 단위 기호는 =
변수에 숫자, 문자열 또는 다른 변수의 값이 할당되는 할당 연산자입니다.
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=y
값 y
(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
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)이 참이라는 점에 상당히 만족합니다.
GO TO FULL VERSION