자바 연산자에 대해서 배우다.
산술 연산자
산술 연산자는 주로 숫자를 계산하는 데 사용된다. 수학 연산을 생각하면 된다.
- + (더하기)
- - (빼기)
- * (곱하기)
- / (나누기)
- % (나머지 구하기)
package operator;
public class Operator1 {
public static void main(String[] args) {
// 변수 초기화
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 = " + 10의 결과는 "a + b = 10"이다.
증감 연산자
증가 및 감소 연산자를 줄여서 증감 연산자라고 한다. ++와 --로 표현된다. 변수의 값을 1만큼 증가시키거나 감소시킨다.
package operator;
public class OperatorAdd1 {
public static void main(String[] args) {
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 = a + 1을 증감 연산자로 표현한 것이다.
전위, 후위 증감 연산자
증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있고, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.
package operator;
public class OperatorAdd2 {
public static void main(String[] args) {
// 전위 증감 연산자 사용 예
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
}
}
++a는 전위 증감연산자, a++은 후위 증감연산자.
b = ++a는 a 값을 먼저 1 증가시키고 b에 대입한다. b = a++은 b에 현재 a 값을 먼저 대입하고 나서 a 값을 1 증가시킨다.
비교 연산자
비교 연산자는 두 값을 비교하는 데 사용한다. 비교 연산자는 주로 조건문에서 사용한다.
- == : 동등성 (equal to)
- != : 불일치 (not equal to)
- > : 크다 (greater than)
- < : 작다 (less than)
- <= : 크거나 같다 (greater than or equal to)
- >= : 작거나 같다 (less than or equal to)
비교 연산자를 사용하면 true(참) or false(거짓)이라는 결과가 나온다. true, false는 boolean형을 사용한다.
=과 ==은 다르다. =은 대입 연산자, == 동등한 지 비교하는 비교 연산자이다.
package operator;
public class Comp1 {
public static void main(String[] args) {
int a = 2;
int b = 3;
System.out.println(a == b); // false, a와 b는 같지 않다
System.out.println(a != b); // true, a와 b는 다르다
System.out.println(a > b); // false, a는 b보다 크지 않다
System.out.println(a < b); // true, a는 b보다 작다
System.out.println(a >= b); // false, a는 b보다 크거나 같지 않다
System.out.println(a <= b); // true, a는 b보다 작거나 같다
//결과를 boolean 변수에 담기
boolean result = a == b; //a == b: false
System.out.println(result); //false
}
}
문자열 비교
문자열이 같은지 비교할 때는 == 비교 연산자를 사용하는 것이 아니라 .equals( ) 메서드를 사용해야 한다.
package operator;
public class Comp2 {
public static void main(String[] args) {
String str1 = "문자열1";
String str2 = "문자열2";
boolean result1 = "hello".equals("hello"); //리터럴 비교
boolean result2 = str1.equals("문자열1");//문자열 변수, 리터럴 비교
boolean result3 = str1.equals(str2);//문자열 변수 비교
System.out.println("result1 = " + result1); // result1 = true
System.out.println("result2 = " + result2); // result2 = true
System.out.println("result3 = " + result3); // result3 = false
}
}
논리 연산자
논리 연산자는 boolean형인 true, false를 비교하는 데 사용한다.
- && (그리고, And): 두 피연산자가 모두 true이면 true를 반환, 둘 중 하나라도 false이면 false를 반환
- || (또는, Or): 두 피연산자 중 하나라도 true이면 true를 반환, 둘 다 false면 false를 반환
- ! (부정, Not): 피연산자의 논리적 부정을 반환, !true == false, !false == true
대입 연산자
대입 연산자(=)는 값을 변수에 할당하는 연산자다.
축약(복합) 대입 연산자
package operator;
public class Assign1 {
public static void main(String[] args) {
int a = 5; // 5
a += 3; // 8 (5 + 3): a = a + 3
a -= 2; // 6 (8 - 2): a = a - 2
a *= 4; // 24 (6 * 4): a = a * 4
a /= 3; // 8 (24 / 3): a = a / 3
a %= 5; // 3 (8 % 5) : a = a % 5
System.out.println(a);
}
}
산술 연산자와 대입 연산자를 한번에 축약해서 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라 한다.
+=, -=, *=, /=, %= 이 있다.