산술 연산자
+, -, *, /
연산자의 종류
산술 연산자 종류 - - +, -, *, /, %
증감 연산자 - ++, --
비교 연산자 - ==, !=, >, <, >=, <=
논리 연산자 - &&, ||, !
대입 연산자 - =, +=, -=, /=, %=
삼항 연산자 - ?
연산자와 피연산자
연산자 : 연산 기호
피연산자 : 3,4,a,b
public class Operator1 {
public static void main(String[] args) {
int a = 5;
int b = 2;
int sum = a +b;
System.out.println("sum = " + sum);
int diff = a- b;
System.out.println("diff = " + diff);
int multi = a * b;
System.out.println("multi = " + multi);
int div = a / b;
System.out.println("div = " + div);
int mod = a % b;
System.out.println("mod = " + mod);
}
}
5 / 2의 결과는 2.5여야 하지만 int (정수형)이기 때문에 2로 반환
나머지 연산의 경우 실무와 알고리즘에 종종 등장
주의 0으로 나누기
10 / 0을 하게 되면 ArthmeticException 발생!
문자열 더하기
public class Operator2 {
public static void main(String[] args) {
String rst = "hello" + "world";
System.out.println("rst = " + rst);
String s = "String1";
String s2 = "String2";
String rst1 = s + s2;
System.out.println("rst1 = " + rst1);
String rst3 = "a + b = " + 18;
System.out.println("rst3 = " + rst3);
int num = 20;
String str = "a + b =";
String rst4 = str + num;
System.out.println("rst4 = " + rst4);
}
}
문자열 + 문자열 = 문자열
변수 s1 + 변수 s2 = 문자열
문자와 숫자를 더하면 숫자를 문자열로 변경한 다음 서로 더한다.
-> 자바는 문자열인 String 타입에 다른 타입을 더하는 경우 타입을 문자열로 변경한다.
public class Operator3 {
public static void main(String[] args) {
int sum1 = 1 + 2 * 3;
int sum2 = (1 + 2) * 3;
System.out.println("sum1 = " + sum1);
System.out.println("sum2 = " + sum2);
}
}
()가 있다면 우선순위
public class Operator4 {
public static void main(String[] args) {
int sum = 2 * 2 + 3 * 3;
int sum2 = (2 * 2) + (3 * 3);
System.out.println("sum = " + sum);
System.out.println("sum2 = " + sum2);
}
}
if) 계산이 복잡하다면 ()를 사용하는 것이 훨씬 더 명확하다.
연산자 우선순위 암기법
1. 괄호
2. 단항 연산자 - ++, --, !, new
3. 산술 연산자
4. Shift 연산자
5. 비교 연산자
6. 등식 연산자
7. 비트 연산자
8. 논리 연산자
9. 삼항 연산자
10 대입 연산자
-> 암기라고 적어 놓았기는 했지만 외우지는 말자
증감 연산자
public class OperatorAdd1 {
public static void main(String[] args) {
int a = 0;
a = a + 1;
System.out.println("a = " + a);
a = a + 1;
System.out.println("a = " + a);
++a;
System.out.println("a = " + a);
a++;
System.out.println("a = " + a);
}
}
증감 연산자는 ++, --로 표현, 변수 1만큼 증가 or 감소

a = a + 1을 ++a로 간단히 표현 (증감 연산자)
++ 증가, -- 감소
전위, 후위 증감 연산자
++a -> 증감연산자를 피연산자 앞에 둘 수 있다. (전위) 증감 연산자
a++ -> 증감연산자를 피연산자 뒤에 둘 수 있다. (후위) 증감 연산자
public class OperatorAdd2 {
public static void main(String[] args) {
int a = 1;
int b = 0;
b = ++a;
System.out.println("a = " + a + " b = " + b);
a= 1;
b=0;
b = a++;
System.out.println("a = " + a + " b = " + b);
}
}
b = ++a;
System.out.println("a = " + a + " b = " + b);

증감 연산자가 변수 앞에 오는 경우를 전위 증감 연산자
이 경우는 증감 연산이 우선 수행된 수 나머지 연산
b = a++;
System.out.println("a = " + a + " b = " + b);

증감 연산자가 변수 뒤에 오는 경우 후위 증감 연산자
이 경우 다른 연산이 수행된 후 증감 연산이 수행
비교연산자
두 값을 비교하느데 사용. 비교 연산자는 주로 조건문에서 사용
== 동등성
!= 불일치
크다
< 작다
= 크거나 같다
<= 작거나 같다
비교 여산자를 사용하면 True or False
주의) = VS ==
= -> 대입 연산자, 변수에 값을 대입
== -> 동등한지 확인
불일치 연산자는 != , 반대는 !
public class Comp {
public static void main(String[] args) {
int a = 2;
int b = 3;
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);
System.out.println(a <= b);
boolean rst = a == b;
System.out.println(rst);
}
}
문자열 비교
.equals()라는 메서드 사용
==을 사용할 경우 성공할 경우도 있지만 실패할 경우도 있음.
public class Comp1 {
public static void main(String[] args) {
String str1 = "문자열1";
String str2 = "문자열2";
boolean rst1 = "hello".equals("hello");
boolean rst2 = str1.equals("문자열1");
boolean rst3 = str1.equals(str2);
System.out.println("rst3 = " + rst3);
System.out.println("rst2 = " + rst2);
System.out.println("rst1 = " + rst1);
}
}
논리연산자
boolean형인 true, false 비교
논리연산자
public class Logical1 {
public static void main(String[] args) {
System.out.println("&& : AND");
System.out.println(true && true);
System.out.println(true && false);
System.out.println(false && false);
System.out.println("|| : OR ");
System.out.println(true || true);
System.out.println(true || false);
System.out.println(false || false);
System.out.println("! 연산");
System.out.println(!true);
System.out.println(!false);
System.out.println("변수 활용");
boolean a = true;
boolean b = false;
System.out.println(a&& b);
System.out.println(a|| b);
System.out.println(!a);
System.out.println(!b);
}
}
논리 연산자 활용
public class Logical2 {
public static void main(String[] args) {
int a = 15;
boolean rst = a > 10 && a < 20;
System.out.println("rst = " + rst);
}
}
대입 연산자
대입연산자는 =이라는 값을 변수에 할당하는 연산자. 이 연산자를 사용하면 변수에 값을 할당 가능
축약 대입 연산자
산술 연산자와 대입 연산자를 한번에 축약해서 사용.
종류 : +=, -=, *=, /=, %=
public class Assgin1 {
public static void main(String[] args) {
int a = 5;
a += 3;
a -= 2;
a *= 4;
a /= 3;
a %= 5;
System.out.println(a);
}
}
연습문제
1.
public class OperationEx1 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int num3 = 30;
int sum = num1 + num2 + num3;
int avg = sum / 3;
System.out.println("sum = " + sum);
System.out.println("avg = " + avg);
}
}
public class DoubleEx2 {
public static void main(String[] args) {
double var1 = 1.5;
double var2 = 2.5;
double var3 = 3.5;
double sum = var1 + var2 + var3;
double avg = sum / 3;
System.out.println("sum = " + sum);
System.out.println("avg = " + avg);
}
}
public class OperationEx3 {
public static void main(String[] args) {
int score = 80;
boolean rst = score >= 80 && score <= 100;
System.out.println("rst = " + rst);
}
}