Programming/JAVA

JAVA - 연산자 (Operator)

긍정왕웹서퍼 2021. 7. 30. 00:47
728x90

연산자는 말 그대로 연산 ( 계산 ) 을 위해 사용하는 것을 의미합니다.

 

연산자를 배우기 이전에 출력메소드를 통해 값을 출력하는 것을 알아보겠습니다.

 

출력문

System.out.print();  = ()안에 변수,문자,숫자,논리 값을 모니터에 출력해주는 메소드

System.out.println(); = 위에 print문과 동일하지만 출력 후 자동으로 출력창에 줄바꿈을 해주는 메소드

System.out.printf(); = 정해져있는 형식에 맞춰서 그 형식에 맞는 값(변수)를 줄바꿈하지 않고 출력 

 

 

 

이번엔 입력문 Scanner 클래스를 통해 값을 입력하는것을 알아보겠습니다.

입력문

스캐너는 java.util.Scanner 클래스이기 때문에 소스 맨 앞에 import를 통해 호출해와야합니다.

import java.util.Scanner

Scanner 는 객체를 생성하여 사용해야 합니다. 

Scanner sc = new Scanner(System.in);

여기서 sc 가 객체의 이름이며. 스캐너 객체를 선언 후 자료형별로 타입에 따라 초기화를 해야합니다.

생성자 / 메소드 설명
String / next() 입력된 값을 문자열 로 변환
String / nextLine() 입력된 값을  문자열 로 변환하며 줄바꿈
boolean / nextBoolean() 입력된 값을 boolean 으로 변환
byte / nextByte() 입력된 값을 byte 로 변환
double / nextDouble() 입력된 값을 double 로 변환
float / nextFloat() 입력된 값을 float 로 변환
int / nextInt() 입력된 값을  int 로 변환
long / nextLong() 입력된 값을  long 로 변환
short / nextShort() 입력된 값을  short 로 변환

 

이제 연산자를 배워보겠습니다. 먼저, 연산을 할때는 연산자의 우선순위가 있습니다.

어떤 연산자가 먼저 수행되어야할지 수학으로 약속이 되어있는 개념입니다.

연산자의 우선 순위

연산자의 종류와 우선순위를 정리한 표

위에서 아래로 우선순위가 있으며, 연산을 수행할 때 자바는 자동으로 우선순위를 매겨 연산을 진행합니다.

 

연산자의 종류 

1. 단항 연산자 

 - 논리 부정 연산자 : !

논리 값을 부정하여 반대 값으로 변경, 제어문을 활용할 때 많이 쓰임

boolean bool1 = true;
boolean bool2 = !bool1; //bool1의 반대

- 증감 연산자 : ++ , --

피연산자의 값에 1을 더하거나 빼는 연산자로 위치에 따라 결과 값이 다르게 나타남

전위연산 : ++이 앞에 붙으며 먼저 연산 후 뒤에 연산을 실행

후위연산 : ++이 뒤에 붙으며 실행 후 나중에 연산을 실행 

int a = 10; 
int b = ++a; //전위 연산
System.out.println(a + ", " + b);

int a = 10;
int b = a++; //후위 연산
System.out.println(a + ", " + b);

- 산술 연산자 : + , - , % , / , *  일반 수학식처럼 덧셈, 뺄셈, 나눗셈, 나누기의 나머지값, 곱하기 를 수행하는 연산

int a = 10, b = 20, c = 0;
c = a * b;
c = a / b;
c = a % b;
c = a + b;
c = a - b;

- 비교 연산자 : 데이터가 값이 같은지, 다른지 비교할때 사용하며 논리값(boolean)으로 결과값이 출력

== , != , < , > , <= , >= ,, 같다, 다르다, 이상, 이하 ,초과 , 미만

a == b : a와 b가 같으면 true 다르면 false
a != b : a와 b가 다르면 true 같으면 false
a < b : a가 b보다 작으면 true 크면 false
a > b : a가 b보다 크면 true 작으면 false
a <= b : a가 b보다 같거나 작으면 true 크면 false
a >= b : a가 b보다 같거나 크면 true 작으면 false

- 논리 연산자 : 논리 값 두개를 비교하는 연산자

&& : 두 피연산자가 모두 true일 때 true를 리턴 (AND)
|| : 두 피연산자 중 하나만 true여도 true를 리턴(OR)

- 복합대입 연산자 : 다른 연산자와 대입 연산자가 결합한 것으로 자기자신과 연산 후 결과를 자기자신에게 누적해서 대입

a += 10 === a = a+10 
a -= 10 === a = a-10
a *= 10 === a = a*10
a /= 10 === a = a/10
a %= 10 === a = a%10

-삼항 연산자 : 조건식 ? 식1 : 식2;   조건식의 결과 값에 따라 연산을 처리하는 방식으로 결과 값이 참일 경우 식1, 거짓일 경우 식2 수행하며 삼항 연산자안에 삼항연산자를 중첩하여 쓰는 것도 가능 

int result1 = a > b ? a++ : b--;
int result2 = a < b ? a+= : (b == 0 ? a-- : b++);