본문 바로가기
Challenge

#210718 java 연산자

by Daisy :) 2021. 7. 18.
반응형

연산자는 비트연산 또는 shift연산 빼고 중요하다. 

    → 다만, 연산속도가 빨라서 최적화에 필요할 수도 있다. 

 

연산자 결합규칙

  • 산술 > 비교 > 논리 > 대입  → 대입이 가장 마지막에 수행 
  • 단항 > 이항 > 삼항 → 단항 연산자의 우선순위가 이항 연산자 보다 높다 
  • 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽 → 오른쪽 

증감 연산자(++) , 감소 연산자 (--) 

  • 전위형 → 값이 참조되기 전 증가 
  • 후위형 → 값이 참조된 후에 증가
public class Operator0718{

	public static void main(String[] args) {
		
		int i = 10, j = 0;
		
		j = i++; 
		
		System.out.println("i : " + i + " j : " + j);
		// i를 j에 먼저 대입을 하고 i의 값을 1 증가시킨다. 
		
		j = ++i;
		
		System.out.println("i : " + i + " j : " + j);
		//i의 값을 1 증가시킨 상태에서 j값에 대입한다. 
	}

}

실행결과 

 

i : 11 j : 10
i : 12 j : 12

 

형변환 (변수 or 상수 타입을 다른 타입으로 변환) 

형변환은 같은 유형끼리만 변경이 가능하다. 

ex) 실수 → 정수 형변환될때는 유실이 생길 수 있다. 

(큰 타입→ 작은 타입) 유실이 발생하거나 에러가 생긴다. 

 

기존의 값을 최대한 보존할 수 있는 타입으로 자동형변환된다. 

 

연산자 우선순위

연산자 우선순위가 헤깔릴때에는 먼저 수행되어야 하는 연산을 ( )로 묶으면 우선순위를 강제로 지정하게 된다. 

(실수 발생 예방) 

 

public static void main(String[] args) {

  System.out.println( 2 * 3 + 1);
  System.out.println(2 * (3 + 1));
}

실행결과

7
8

 

논리연산자 (&& 와 ||)

 

 A && B → A,B 둘 다 TRUE여야만 TRUE

 A || B → A,B 둘 중 하나만 TRUE여도 TRUE

 

A || B || C의 연산에서 A||B가 TRUE여도 B||C가 TRUE인지 한번 더 체크를 한다. 

하지만, 

A|B|C 의 연산은 A|B가 TRUE이면 B|C가 TRUE인지 체크하지 않는다. 

반응형

'Challenge' 카테고리의 다른 글

나의 챌린지에 대하여..  (0) 2021.12.06
#210718 java 변수  (0) 2021.07.18
210315 #1:)  (0) 2021.03.26
12주차 과제: 애노테이션 #12  (0) 2021.02.12
11주차 과제: Enum  (0) 2021.01.29

댓글