본문 바로가기
프로그래밍/Java

[JAVA]연산자

by jjjhhhhh 2021. 8. 12.

자바의 연산자 종류

  1. 산술 연산자 : + - * / %

- 2항 연산자

int a = 10 , b = 3;
System.out.println(a+b); //13
System.out.println(a-b); // 7
System.out.println(a*b); // 30
System.out.println(a/b); // 3(몫)  -> 정수 / 정수 
System.out.println(a%b); // 1
System.out.println(10.0/3.0); //3.3333333333333335 ->실수/실수

 

- 나누기 연산자

System.out.println(10/3);-->3 //int / int = int 
System.out.println(10/3.0);-->3.3333333 // int / double = double
System.out.println(10.0/3);-->3.3333333 // double / int = double 
System.out.println(10.0/3.0);-->3.3333333  // double / double = double

- 오버플로우

int money1 = 2000000000;
int money2 = 1500000000;
		
System.out.println("잔액: " +(money1 +money2)); //int + int = int => 오버플로우 발생.
System.out.println("잔액: " +(money1 +(long)money2)); //int + long = long 로 변경 
  • 모든 산술 연산의 결과는 항상 자료형이 두 피연산자 중 더 큰 자료형으로 변환된다.

+ : 오버플로우 신경쓸것

- : 오버플로우 신경쓸것

* : 오버플로우 더욱 신경쓸것

/ : 오버플로우 발생 X , 소수 이하를 남길지말지

% : 신경 x

 

2. 비교연산자 : > , > = , < , < = , ==(equal) , ! = (not equal)

- 2항 연산자 , 피연산자는 모두 숫자

- 연산의 결과가 항상 true / false

- 문자열의 비교는 동등비교만 가능하고, 연산자(==,! =) 사용 불가능하고, equals()메소드 사용해야한다.
String str1 ="홍길동";
String str2 ="홍길동";
String str3 ="아무개";
String str4 = "홍";
str4 = str4 +"길동";
			
System.out.println(str1 == str2);//true
System.out.println(str1 == str3);//false 
System.out.println(str1 == str4);//false 
		
System.out.println(str1.equals(str2)); // str1== str2
System.out.println(str1.equals(str4));// str1 == str4 // true

 

 

3. 논리연산자 : &&, || , !

- 2항 연산자 ( &&, || ) , 1항 연산자 ( ! )

- 피연산자를 반드시 boolean으로 가지고, 연산자의 결과를 boolean으로 반환.

- 피연산자를 가지고 특정한 규칙에 따라 연산의 결과를 반환.

 

 

 

- 1항 연산자

System.out.println(!true); //false
System.out.println(!false); // true 

 

4. 대입 연산자 , 할당 연산자 : =

- 복합대입 연산자 : +=, -= , *= , /= , %=

- LeftValue = RightValue

n = n + 1; 
n += 1; 

n = n * 2;
n *= 2;

 

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

- 1항 연산자

- 피연산자의 값을 +1, -1 누적시키는 연산자

- 연산자의 결과가 경우에 따라 달라진다.

  1. ++n : 전위 연산자 - 연산 우선 순위가 가장 높다.
  1. n++ : 후위 연산자 - 연산 우선 순위가 가장 낮다.
  • 연산자 우선 순위

- 산술 연산자 > 비교 연산자 > 논리연산자 > 대입 연산자

- 증감연산자 > 산술 연산자 > 비교 연산자 > 논리연산자 > 대입 연산자 ->

++n

- 산술 연산자 > 비교 연산자 > 논리연산자 > 대입 연산자 > 증감연산자 ->

n++

 

int num = 10;
int sum = 0;

sum = 20 + ++n; // ++n이 우선순이가 가장 높음 
System.out.println(sum); // 31 

num =10;
sum = 0;
sum = 20 + n++; 
System.out.println(sum); // 30
System.out.println(num); // 11

**증감 연산자는 다른 연산자와 같은 문장에 작성하지 말것 **
++n;
sum = 20 + num;

sum = 20 + num;
n++; 

 

6. 조건 연산자 : A ? B : C

- 3항 연산자 - A 값이 true 면 B , false 면 C .

- A : 조건(boolean) 값 ,

- B, C : 상수, 변수, 연산식 → 연산의 결과값

- B와 C 는 반드시 자료형이 동일해야한다.

System.out.println(true ? "참" : "거짓 ");
System.out.println(false ? "참 ": "거짓");

int age = 50;//사용자 입력  
String result = (age >= 19 && age < 60) ? "성공" : "실패" ;
System.out.printf("입력하신 나이 %d세는 회원가입 %s입니다.",age,result);
//입력하신 나이 50세는 회원가입 성공입니다.

 

 

 

'프로그래밍 > Java' 카테고리의 다른 글

[JAVA]메소드 오버 로딩 , 재귀함수  (0) 2021.08.19
[JAVA] 생성자  (0) 2021.08.12
[Java] 자료형  (0) 2021.07.11