JAVA

여러 가지 연산자

yujin0517 2021. 6. 26. 14:02

*기본적으로 '1 + 2 = 3'에서 1, 2, 3은 항, +,=은 연산자라고 함.

 

 

대입 연산자

-> 대입 연산자는 '='으로 표시함.

int x = 1;

*위 코드는 오른쪽의 숫자 1을 변수 x에 대입해준다는 의미임.

 

 

부호 연산자

-> 부호 연산자에는 '+' 또는 '-' 등이 있음. 이 연산자를 사용한다고 해서 실제 값이 변경되는 것은 아님.

int b = 2;
System.out.println(-b);

 *부호 연산자를 사용하여 -2가 콘솔 창에 출력되도록 함. 

 

int b = 2; 
b = -b;  // 대입연산자를 사용하여 실제 값을 변경함.
System.out.println(b);

*위 코드처럼 대입 연산자를 사용하면 실제 값을 변경시킬 수 있음. 

 

 

산술 연산자

-> 산술 연산자에는 '=', '-', '*', '/', '%' 등이 있음. 

int a = 5;
int b = 3;
System.out.println(a + b); // 더하기 연산자
System.out.println(a - b); // 빼기 연산자
System.out.println(a * b); // 곱하기 연산자
System.out.println(a / b); // 나누기 연산자(몫)
System.out.println(a % b); // 나누기 연산자(나머지)

 

 

복합 대입 연산자

-> 복합 대입 연산자는 부호 연산자와 산술 연산자를 같이 사용하는 것이라고 볼 수 있음. 

int c = 1;
c += 2; // c = c + 2와 같음. c = 3
c -= 1; // c = c - 1와 같음. c = 2
c *= 3; // c = c * 3와 같음. c = 6
c /= 2; // c = c / 2와 같음. c = 3
c %= 2; // c = c % 2와 같음. c = 1
System.out.println(c); // 최종적으로 c는 1이 출력됨.

 

 

증감 연산자(단항 연산자)

-> 증감 연산자는 '++', '--' 등이 있음. 변수를 1씩 증가하거나, 1씩 감소시킬 때 사용됨. 

*변수 앞에 붙이는지 뒤에 붙이는지에 따라 의미가 달라짐.

int d = 1;
int input= 0;
input = d++; // (1)d의 값이 input에 먼저 대입되고 난 뒤, d의 값이 1 증가됨.
input = ++d; // (2)d의 값이 1 증가되고 난 뒤, input에 대입됨.
input = d--; // (3)d의 값이 input에 먼저 대입되고 난 뒤, d의 값이 1 감소됨.
input = --d; // (4)d의 값이 1 감소되고 난 뒤, input에 대입됨.
System.out.println(input);
System.out.println(d);

* (1)의 출력 값은 d = 2, input = 1

  (2)의 출력 값은 d = 3, input = 3

  (3)의 출력 값은 d = 2, input = 3

  (4)의 출력 값은 d = 1, input = 1  => d와 input의 실제 값이 계속 변경됨.

 

 

관계 연산자

-> 관계 연산자에는 '>', '<', '==', '!=' 등이 있음. 

int num1 = 10;
int num2 = 20;
System.out.println(num1 > num2); // 결과는 false로 출력됨.
System.out.println(num1 < num2); // 결과는 true로 출력됨.
System.out.println(num1 == num2); // 결과는 false로 출력됨. 
System.out.println(num1 != num2); // 결과는 true로 출력됨.

*프로그래밍 언어에서는 '같다'라는 의미의 기호로 '=='를 사용함. / '='는 대입 연산자.

 

 

논리 연산자

-> 논리 연산자에는 '&&', '||', '!' 등이 있음. &&은 and, ||은 or, !은 not의 의미로 이해하면 됨.

int num1 = 10;
int num2 = 20;
System.out.println((num1 < num2) && (num1 == num2)); // 앞 항은 true, 뒤 항은 false 이므로 false 출력됨.
System.out.println((num1 == num2) && (num1 < num2)); // 앞 항이 false이므로 사실상 뒤 항의 결과는 상관없이 false 출력됨.
System.out.println((num1 > num2) || (num1 < num2)); // 앞 항은 false, 뒤 항은 true 이므로 true 출력됨.
System.out.println((num1 < num2) || (num1 > num2)); // 앞 항이 true이므로 사실상 뒤 항의 결과는 상관없이 true 출력됨.
System.out.pritnln(num1 != num2); // num1과 num2는 같지 않기 때문에 true 출력됨. 

* &&와 || 연산자의 경우, 앞 항의 결과 만으로 true인지 false인지 결정되는 경우가 있음. 

 

 

조건 연산자

-> 조건 연산자는 if문의 간단한 표현법이라고 할 수 있음. / 조건식 ? 결과1(조건이 true) : 결과2(조건이 false) ;

int num1 = 10;
int num2 = 20;
int max = (num1 > num2) ? num1 : num2; //num1과 num2의 크기를 비교해 더 큰 수를 반환하는 식을 삼항연산자로 표현함.
System.out.println(max); // 20이 출력됨.

*if문으로 표현하면, 밑에 코드처럼 표현할 수 있음.

int num1 = 10;
int num2 = 20;
if (num1 > num2) System.out.println(num1); // 조건식이 true일 경우, num1 출력.
else System.out.println(num2); // 조건식이 false일 경우, num2 출력.

 

 

연산자 우선순위

-> 연산자는 '( ) -> [ ] -> =' 순으로 우선순위가 낮아짐. 즉, '='의 우선순위가 가장 낮음.

 

다음 글에서는 조건문과 반복문에 대해 설명하겠습니다.

감사합니다!

 

2021.06.26

'JAVA' 카테고리의 다른 글

if - else 반복문 문제 풀이  (0) 2021.06.29
if / if - else 조건문  (0) 2021.06.28
상수 및 형변환  (0) 2021.06.25
변수 및 자료형  (0) 2021.06.24
이클립스 실행  (0) 2021.06.24