Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[자바/Java] - 연산자(1) (산술 연산자, 증감 연산자) 본문

Study/Java

[자바/Java] - 연산자(1) (산술 연산자, 증감 연산자)

luke-king 2023. 12. 27. 22:02

연산자

연산자 종류

- 산술 연산자: +, -, *, /, % (나머지 연산자)

- 증감(증가 및 감소) 연산자: ++, --

- 비교 연산자: ==, !=, >, <, >=, <=

- 논리 연산자: &&(and), ||(or), !(not)

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

- 삼항 연산자: ? :

 

우선 산술 연산자 부터 보겠다.

산술 연산자는 주로 계산하는 데 사용된다. 우리가 이미 잘 알고 있는 수학 연산이다.

 

산술 연산자

  • + (더하기)
  • - (빼기)
  • * (곱하기)
  • / (나누기)
  • % (나머지)

<산술 연산자 사용 코드>

 int a = 5;
 int b = 2;
 
 // 더하기
 int sum = a + b;
 System.out.println("a + b = " + sum); // 출력: a + b = 7
 
 // 빼기
 int diff = a - b;
 System.out.println("a - b = " + diff); // 출력: a - b = 3
 
 // 곱하기
 int multi = a * b;
 System.out.println("a * b = " + multi); // 출력: a * b = 10
 
 // 나누기
 int div = a / b;
 System.out.println("a / b = " + div); // 출력: a / b = 2
 
 // 나머지
 int mod = a % b;
 System.out.println("a % b = " + mod); // 출력: a % b = 1

 

<실행 결과>

a + b = 7
a - b = 3
a * b = 10
a / b = 2
a % b = 1

나누기 연산자를 보면 5/2의 결과는 2.5가 나와야 하지만 결과는 소수점이 안나온 " 2 "가 나왔다.

왜냐하면 int형 끼리 계산하면 계산 결과도 같은 int형을 사용한다.

 

나머지 연산자를 보자 이름 그대로 나머지를 구하는 연산자 이다. 5/2는 몫이 2 나머지가 1이다. 따라서 나머지 연산자 5%2의 결과는 1이 된다.

 

문자열 더하기

자바는 문자열에도 " + " 연산자를 사용할 수 있다.

 

<문자열 더하기 코드>

//문자열과 문자열 더하기
 String result1 = "hello " + "world";
 System.out.println(result1);
 
 //문자열과 숫자 더하기
 String result2 = "a + b = " + 10;
 System.out.println(result2);

 

<실행 결과>

hello world
a + b = 10

 

 

연산자 우선순의

1 + 2 * 3 의 결과는 수학을 해봤다면 다 알거라 생각한다. *(곱셈)이 우선순위가 덧셈 뺄셈 보다 높기에 2 * 3을 먼저 계산해 답은 7이 나온다. 코드를 보겠다.

 

<연산자 우선순위 코드>

 int sum1 = 1 + 2 * 3; //1 + (2 * 3)
 int sum2 = (1 + 2) * 3;
 System.out.println("sum1 = " + sum1); //sum1 = 7
 System.out.println("sum2 = " + sum2); //sum2 = 9

 

<실행 결과>

sum1 = 7
sum2 = 9

- 출력 결과를 보면 sum1 = 7이 나왔다. 연산자 우선순위에 의해 곱셈이 먼저 계산된 것이다.

- 연산자 우선순위를 변경하려면 수학과 마찬가지로 괄호" () "를 사용하면 된다. " () "를 사용한 곳이 먼저 계산된다.

- sum2는 괄호를 사용해서 덧셈이 먼저 계산 되도록 했다.

 

 

다음으로 증감 연산자를 봐보겠다.

 

증감 연산자

증감 연산자란 증가 및 감소 연산자를 줄여서 증감 연산자라 한다.

증감 연산자는 ++, --로 표현하며, 변수의 값을 1만큼 증가시키거나 감소시킨다.

 

<증감 연산자 코드>

 int a = 0;
 
 a = a + 1;
 System.out.println("a = " + a); //1
 a = a + 1;
 System.out.println("a = " + a); //2
 
 //증감 연산자
 ++a; //a = a + 1
 System.out.println("a = " + a); //3
 ++a; //a = a + 1
 System.out.println("a = " + a); //4

 

<실행 결과>

a = 1
a = 2
a = 3
a = 4

변수 a의 값을 하나 증가하려면 " a = a + 1 "연산을 수행해야 한다. 자기 자신에 1을 더하고 그 결과를 자신에게 다시 저장해야 한다.

 

" a = a + 1 "이 " ++a "로 간단하게 표현한게 증감 연산자이다.

" --a "라 하면 " a = a - 1 "이 된다.

 

전위, 후위 증감연산자

증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.

  • ++a: 증감 연산자를 피연산자 앞에 둘 수 있다.
  • a++: 증감 연산자를 피연산자 뒤에 둘 수 있다.

코드를 보겠다.

 

<전위,후위 증감연산자 코드>

 // 전위 증감 연산자 사용
 int a = 1;
 int b = 0;
 b = ++a; // a의 값을 먼저 증가시키고, 그 결과를 b에 대입
 System.out.println("a = " + a + ", b = " + b); // 결과: a = 2, b = 2
 
 // 후위 증감 연산자 사용
 a = 1; // a 값을 다시 1로 지정
 b = 0; // b 값을 다시 0으로 지정
 b = a++; // a의 현재 값을 b에 먼저 대입하고, 그 후 a 값을 증가시킴
 System.out.println("a = " + a + ", b = " + b); // 결과: a = 2, b = 1

 

 

※ 출처: Inflearn 김영한-Java 강의 중