+, -, *, / 와 같이 계산을 수행하는 기호를 의미한다.+, -, *, /, %(나머지 연산자)++, --==, !=, >, <, >=, <=&&(AND), ||(OR), !(NOT)=, +=, -=, *=, /=, %=? :1 + 2
a + b
+, -)1, 2, a, b)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);
//곱셈
int multi = a * b;
System.out.println("a * b = " + multi);
//나눗셈
int div = a / b;
System.out.println("a / b = " + div);
//나머지
int mod = a % b;
System.out.println("a % b = " + mod);
}
}
📍실행 결과
a + b = 7
a - b = 3
a * b = 10
a / b = 2
a % b = 1
Exception in thread "main" java.lang.ArithmeticException: / by zero
package operator;
public class Operator2 {
public static void main(String[] args) {
//문자열과 문자열 더하기1
String result1 = "hello " + "world";
System.out.println(result1);
//문자열과 문자열 더하기2
String s1 = "string1";
String s2 = "string2";
String result2 = s1 + s2;
System.out.println(result2);
//문자열과 숫자 더하기1
String result3 = "a + b = " + 10;
System.out.println(result3);
//문자열과 숫자 더하기2
int num = 20;
String str = "a + b + ";
String result4 = "a + b = " + 20;
System.out.println(result4);
}
}
📍실행 결과
hello world
string1string2
a + b = 10
a + b = 20
String result1 = "hello " + "world"
"hello " 문자열과 "world" 문자열을 더해서 "hello world" 문자열을 만든다.result1에 저장한다.String result2 = s1 + s2
s1과 s2변수에 있는 문자열을 읽는다."string1" + "string2"연산을 수행해서 string1string2 문자열을 만든다.result2에 저장한다.String result3 = "a + b = " + 10
result3에 저장한다.String result4 = "a + b = " + 20
result4에 저장한다.package operator;
public class Operator4 {
public static void main(String[] args) {
int sum3 = 2 * 2 + 3 * 3; //(2 * 2) * (3 * 3)
int sum4 = (2 * 2) + (3 * 3);
System.out.println("sum3 = " + sum3);
System.out.println("sum4 = " + sum4);
}
}
📍실행 결과
sum3 = 13
sum4 = 13
()++ , -- , ! , ~ , new , (type)* , / , % 우선, 그 다음에 + , -<< , >> , >>> < , <= , > , >= , instanceof(객체 타입 확인)== , !=& , ^ , |&& , ||? := , += , -= , *= , /= , %= 등등++와 --로 표현한다.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;
System.out.println("a = " + a); //3
++a;
System.out.println("a = " + a); //4
}
}
📍실행 결과
a = 1
a = 2
a = 3
a = 4
a = a + 1을 증감 연산자를 사용해 숫자 값을 하나 증가한다.--a와 같이 표현하면 된다. (=>a = a - 1)++a)a++)package operator;
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; //a 값을 다시 1로 지정
b = 0; //b 값을 다시 0으로 지정
b = a++;
System.out.println("a = " + a + ", b = " + b);
}
}
📍실행 결과
a = 2, b = 2
a = 2, b = 1
b = ++a
a의 값을 먼저 증가 시키고, 그 결과를 b에 대입한다. b = a++
a의 현재 값을 b에 먼저 대입하고, 그 후 a값을 증가 시킨다.(true) 또는 거짓(false)이라는 결과가 출력된다.package operator;
public class Comp1 {
public static void main(String[] args) {
int a = 2;
int b = 3;
System.out.println(a == b); // a와 b는 같지 않다
System.out.println(a != b); // a와 b는 다르다
System.out.println(a > b); // a는 b보다 크지 않다
System.out.println(a < b); // a는 b보다 작다
System.out.println(a >= b); // a는 b보다 크거나 같지 않다
System.out.println(a <= b); // a는 b보다 작거나 같다
//결과를 boolean 변수에 담기
boolean result = a == b;
System.out.println(result);
}
}
📍 실행 결과
false
true
false
true
false
true
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);
System.out.println(result2);
System.out.println(result3);
}
}
📍실행 결과
true
true
false
boolean형인 true, false를 비교할 때 사용한다.&&(AND): 두 피연산자가 모두 참이면 참을 반환하고, 둘 중 하나라도 거짓이면 거짓을 반환한다.||(OR) : 두 피연산자가 중 하나라도 참이면 참을 반환하고, 둘다 거짓이면 거짓을 반환한다.!(NOT) : 피연산자의 논리적 부전증 반환한다. 즉 참이면 거짓을 반환하고, 거짓이면 참을 반환한다.package operator;
public class Logical2 {
public static void main(String[] args) {
int a = 15;
//a는 10보다 크고 20보다 작다.
boolean result = a > 10 && a < 20; //(a > 10) && (a < 20)
System.out.println("result = " + result);
}
}
📍실행 결과
result = true
boolean result = 10 < a && a < 20;
int a = 1는 a라는 변수에 1이라는 값을 할당한다.+=, -=, *=, /+, %=로 표현한다.package operator;
public class Assign1 {
public static void main(String[] args) {
int a = 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);
}
}
📍실행 결과
3
int a라는 변수에 5를 대입하고, 나머지를 구하는 대입 연산자를 통해((8 % 5): a = a % 5) 결과가 3이 나오는 걸 알 수 있다.