안녕! 오늘 우리는 매우 중요한 주제, 즉 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로 나눕니다. 그러면 2로 나눌 수 없는 추가 "꼬리"(1)가 있는 16이 생성됩니다. 이 "꼬리"는 "나누기의 나머지" 작업의 결과입니다. Java는 또한 비교/관계 연산자를 구현합니다 (수학에서와 동일). 그들은 아마도 학교에서 당신에게 친숙할 것입니다:
- 같음 (
==
) - 보다 큼 (
>
) - 미만 (
<
) - 크거나 같음 (
>=
) - 작거나 같음 (
<=
) - 같지 않다 (
!=
)
==
가 아니라 로 작성됩니다 =
. Java에서 single은 변수에 숫자, 문자열 또는 다른 변수의 값을 할당할 때 사용되는 할당=
연산자 입니다 .
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x=y);// We expect false to be displayed
}
}
콘솔 출력: 999 죄송합니다! 이것은 분명히 우리가 기대한 결과가 아닙니다. 완전히 다른 데이터 유형입니다. 부울이 표시 될 것으로 예상했지만 숫자가 표시되었습니다. 비교 대신 괄호 안에 대입 연산자를 사용했기 때문입니다 . (999) 의 값을 변수에 할당한 다음 의 값을 표시했습니다 . 올바른 방법은 다음과 같습니다. x=y
y
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 " 라는 단어에서 " 단항 "이라고합니다 . 이전 오퍼레이터와 달리 여러 개가 아닌 단일 번호에 대해 작동하기 때문에 이 이름이 붙었습니다. 여기에는 다음이 포함됩니다.-
단항 마이너스. 숫자의 부호를 뒤집습니다.
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 for the 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 언어의 확장"이라는 아이디어를 전달하기 위해 이 흥미로운 이름을 사용했습니다. 메모장의 인기 있는 개선된 버전은 메모장++입니다. 여기에서 중요한 점이 있습니다. 증가 및 감소 연산자에는 접미사 및 접두사 의 두 가지 유형이 있습니다 . 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);
}
}
콘솔 출력: 거짓
&&
- 논리 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이므로 첫 번째 작업의 결과는 false입니다 100 > 200
. true를 반환하려면 &&
연산자에서 두 피연산자가 모두 true여야 합니다(두 번째 줄의 경우와 같음).
||
- 논리적 OR . 피연산자 중 하나 이상이 true이면 true를 반환합니다 .
public class Main {
public static void main(String[] args) {
System.out.println(100 > 10 || 100 > 200);
}
}
콘솔 출력: true 표현식은 100 > 200
여전히 false이지만 OR 연산자의 경우 첫 번째 부분( )이 true이면 충분합니다 100 > 10
.
GO TO FULL VERSION