Java/Java 기초

3. 연산자

펭킹 2022. 3. 6. 01:25

연산자의 종류와 우선순위

연산자란 연산자를 위해 사용되는 기호이다.

종류 연산자 설명
산술 연산자 +, -, *, /, % 사칙연산과 나머지 연산
단항 연산자 - 부호 연산자
! 논리 부정 연산자
++, -- 증감 연산자
기타 연산자 =, +=, -=. *= 대입 연산자

연산의 대부분은 우측에서 좌측이지만 단항 연산자와 대입연산자는 왼쪽에서 오른쪽으로 실행한다.

 

연산자에도 우선순위가 있고, 우선순위에 따라 연산순서가 결정된다.

우선자 순위 종류 연산자
1 최우선 연산자 [ ], ( )
2 단항 연산자 !, ~, +, -, ++, --
3 산술 연산자 +, -, *, /, %
4 쉬프트 연산자 <<, >>, >>>
5 비교 연산자 <, >, >=, =<, ==, !=
6 논리 연산자 &&, ||
7 삼항 연산자 (조건) true / false
8 대입 연산자 =, +=, -=, *=
9 후위 증감 연산자 i++

 

산술 연산자

사칙연산과 나머지 계산을 수행하는 연산자들의 집합이다.

public static void main(String[] args)
{                                                       
	int a = 10; // 변수 a 설정                       
	int b = 3; // 변수 b 설정                       
	                                  
	//산술 연산자에 대입                           
	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);                                         
}

결과 값은 

 

13
7
30
3
1

 

으로 콘솔창에 출력된다.

 

여기서 중요한건 변수에 담은 값은 다음에 사용할 것이고, 변수에 담지 않으면 바로 계산식으로 결과를 보여준다.

 

단항 연산자

단항 연산자는 항이 하나인 연산자이다.

연산자 의미 사용법 설명
+, - 부호 연산자 -a 변수의 부호를 바꿈
! 부정 연산자 !a 논리 연산의 역으로 교체
ex) true => false
++ 증가 연산자 ++a, a++ 변수 a에 1을 더해서 삽입
-- 감소 연산자 --a, a-- 변수 a에 1을 빼서 삽입

 

public static void main(String[] args)
{                                     
	int a = -1;                       
	int b = 2;                        
	                                  
	b++;                              
	++b;                              
	                                  
	System.out.println(a);            
	System.out.println(-b);           
	System.out.println(b++);          
}

결과 값은

 

-1
-4
4

 

으로 콘솔창에 출력된다.

 

논리 부정 연산자

논리연산자는 논리 연산을 역으로 만든다.

public static void main(String[] args)
{                                     
	boolean a = true;                 
	boolean b = false;                
	boolean c = !b;                   
	                                  
	System.out.println(a);            
	System.out.println(!a);           
	                                  
	System.out.println(b);            
	System.out.println(c);            
}

결과 값은

 

true
false
false
true

 

으로 콘솔창에 출력된다.

비교 연산자

비교 연산자의 결과는 비교의 참 / 거짓으로 반복문이나 조건문 제어시 사용된다.

public static void main(String[] args)
{                                     
	int a = 10;                       
	int b = 20;                       
	int c = 30;                       
	                                  
	System.out.println(a<b);          
	System.out.println(a>b);          
	System.out.println(a+b <= c);     
	System.out.println(a+b >= c);     
	                                  
}

결과값은 

 

true
false
true
true

 

으로 콘솔창에 출력된다.

 

 

등가비교 연산자의 결과는 양변의 일치여부에 따라 참 / 거짓으로 반환된다.

public static void main(String[] args)           
{                                                
	double a = 3.14;                             
	double b = 5.14;                             
	System.out.println(a==b);                    
	System.out.println(a!=b);                    
	                                             
	String c1 = "Hello Java";                    
	System.out.println(c1.equals("Hello Java")); 
	System.out.println(c1.equals("HELLO JAVA")); 
	                                             
	int x = 33;                                  
	System.out.println(x%3==1&& x+10>45);        
}

결과값은

 

false
true
true
false
false

 

으로 콘솔창에 출력된다.

 

논리 연산자

논리연산자는 여러가지 조건을 동시에 검사할 때 사용하는 연산자이다.
즉 비교연산이 두번 일어난다.

종류 연산자 사용 예시 설명
AND (*) && a&&a a와 b가 모두 참
OR (+) || a||b a와 b중 하나라도 참
NOT ! !a a가 거짓이면 참
a가 참이면 거짓
public static void main(String[] args) {
	int a = 10;                         
	System.out.println(5<a&&a<15);      
	System.out.println(5<a&&a%2==0);    
	                                    
	a = 4;                              
	System.out.println(5<a&&a<15);      
	System.out.println(5<a&&a%2==0);    
}

결과는 

 

true
true
false
false

 

으로 콘솔창에 출력된다.

결과값을 계산으로 확인하는 방법은 해당 식에 참이면 1 거짓이면 0을 넣고 논리연산자가 AND면 곱하고
OR이면 더해서 나온 값이 양수면 참 0이면 거짓이다.

위의 코드를 예로 들면 int a = 10 일때 5<a (참이므로 1) && (AND는 *) a<15 (참이므로 1)
1*1=1 이므로 양수가 나오고 참인것을 알 수 있다.

 

대입 연산자

대입연산자는 산술연산자를 축약하여 작성한 것이다.

public static void main(String[] args)
{                                     
	int a = 3;                        
	int b = 5;                        
	                                  
	b=a;                              
	                                  
	System.out.println(b);            
	                                  
	                                  
	a+=1; // a = a + 1                
	System.out.println(a);            
	                                  
	a/=2; // a = a / 2                
	System.out.println(a);            
	                                  
	a*=a; // a = a * a                
	System.out.println(a);            
}

결과는

 

3
4
2
4

 

으로 콘솔창에 출력된다.