Java/모두의 자바

Chapter 02-09 산술 연산자

계란💕 2022. 2. 3. 13:55

 

02-09.1 산술 연산자

  Def) 연산: 데이터를 처리해 결과를 산출한다.

  Note) 연산자 

         - 부호 연산자: +, -

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

         - 산술 연산자: +, -, *, /, % 

  Ex)

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i1 = -5;   // 부호 연산자: - , 피연산자: 5
		System.out.println(i1);
	
	}

}

  Def)  단항 연산자: '-5'처럼 피연산자가 1개인 연산식을 말한다.

 

02-09 2. 부호 연산자

  - 부호 연산자는 변수 앞에도 붙일 수 있다.

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i1 = -5;  
		int i2 = +i1;
		int i3 = -i1;
		
		System.out.println(i1);
		System.out.println(i2);
		System.out.println(i3);
			
	}

}

  Note) 출력 결과

  - '+': 부호 비트를 그대로 유지시킨다.

  - '-': 음수는 양수로 바꾸고 양수는 음수로 바꿔준다. 

 

02-09 3. 증감 연산자

  - '++' 

  - '--' 

  Ex)  ++i3

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i1 = -5;   // 부호 연산자: - , 피연산자: 5
		int i2 = +i1;
		int i3 = -i1;
		int i4 = ++i3;  // int i4 = (i3 + 1)
		
		System.out.println(i4);
		System.out.println(i3);
			
	}

}

  Note) 출력 결과 ++i3은 i3에 1을 더하란 의미이며 i3은 5라는 값이 있으므로 i4는 1을 더한 6이 들어간다. 

          마찬가지로 i3도 6이 출력된다.

  

  Ex) i3++

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i1 = -5;   // 부호 연산자: - , 피연산자: 5
		int i2 = +i1;
		int i3 = -i1;
		int i4 = ++i3;  // int i4 = (i3 + 1)
		int i5 = i3++;  // int i5 = i3;  i3 = i3 + 1;
		
		System.out.println(i5);
		System.out.println(i3);
		
	}

}

  Note) 출력 결과

           i3++은 i3에 1을 더하라는 의미이다. i5 출력하면 7이 아닌 6이 출력된다. '++'이 뒤에 붙어있을 때는                         해당 변수에 먼저 값을 넣은 다음에 i3에 1을 더한다. 즉, i3에 있던 6을 i5에 먼저 대입한 다음 i3에 1을                       더한 것이다. 따라서, i3을 출력하면 1이 늘어난 7을 출력한다. ( '--'의 경우에도 같다. )

02-09 4. 산술 연산자

 

  Ex) int /int => int

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i = 5;
		int j = 2;
		
		System.out.println(i + j);
		System.out.println(i - j);
		System.out.println(i * j);
		System.out.println(i / j);	
		
	}

}

  Note) 출력 결과

  - 5 / 2 는 2.5가 아닌 2가 출력되었다. i, j를 처음에 int로 선언했기 때문에 정수와 정수끼리의 연산은 정숫값으로 반환.

 

  Ex)  5 / 2 결과가 2가 아닌 2.5라는 결과를 얻으려면?

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i = 5;
		int j = 2;
		
		System.out.println(i / (double) j);	
		
	}
}

  - 2.5라는 결과를 얻기 위해서는 피연산자(2, 5) 중 적어도 하나는 실수여야 한다.

  - 앞에서 배운 형변환을 이용해서 j를 double로 바꾸면  2.5라는 결과가 나온다.

 

02-09 5. 모듈로(Modulo) 연산자 %

  Def)  i % j : i를 j로 나눈 나머지 값을 출력

<hide/>

public class OperatorExam {

	public static void main(String[] args){
		
		int i = 5;
		int j = 2;
		
		System.out.println(i % j);	
		
	}

}

  - 5를 2로 나눈 나머지 1이 출력된다.

'Java > 모두의 자바' 카테고리의 다른 글

Chapter 02-11 연산자 우선순위  (0) 2022.02.03
Chapter 02-10 비교 연산자  (0) 2022.02.03
Chapter 02-08 기본형 형변환(Casting)  (0) 2022.02.03
Chapter 02-07 기본형  (0) 2022.02.03
Chapter 02-06 상수  (0) 2022.02.03