1. 연산자의 종류와 우선순위
연산자는 특정한 연산을 수행하기 위해 사용하는 기호입니다.
연산자를 한 줄에 여러개를 사용해도 우선 적용되는 순서가 있습니다.
연산자 우선순위 |
종류 | 연산자 |
1 | 최우선 연산자 | [], ., (메소드), (후행)++, (후행)-- |
2 | 단항 연산자 | !, ~(비트 NOT), ++(선행), --(선행), +(단항), -(단항), () |
3 | (데이터 형) : 타입, new : 객체 생성 | |
4 | 산술 연산자 | *, /, % |
5 | =, - | |
6 | 쉬프트 연산자 | <<, >>, >>> (비트 이동 연산자) |
7 | 비교 연산자 | <, <=, >, >=, instanceof |
8 | ==, != | |
9 | 비트 논리 연산자(?) | & (비트 AND) |
10 | ^ (비트 XOR) | |
11 | | (비트 OR) | |
12 | 논리 연산자 | &&(논리 AND) |
13 | ||(논리 OR) | |
14 | 삼항 연산자 | (조건) ? 참 : 거짓 |
15 | 대입 연산자 | =, +=, -=, *=, /=, %=, &=, |=, ^=, >>=, <<=, >>>= |
2. 산술 연산자
변수와 상수를 함께 사용해 기본적인 계산을 할 수 있습니다.
NO | 연산자 | 의미 | 사용방법 |
1 | + | 더하기 | c = a + b |
2 | - | 빼기 | c = a - b |
3 | * | 곱하기 | c = a * b |
4 | / | 나누기 | c = a / b |
5 | % | 나머지 | c = a % b |
계산한 값들을 c라는 변수에 대입하는 것입니다.
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = 20; // a에 20을 대입
int b = 7; // b에 7을 대입
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);
}
}
27
13
140
2
6
위와 같은 결과 값이 도출됩니다.
특히, 나눗셈( / )은 a를 b로 나눈 몫, '%'는 a를 b로 나눈 나머지를 도출합니다.
3. 단항 연산자
항이 하나인 연산자입니다.
NO | 연산자 | 의미 | 사용방법 | 설명 |
1 | +, - | 부호 연산자 | -a | 변수 a의 부호를 바꾼다. |
2 | ! | 부정 연산자 | !a | 논리 부정 연산자는 참(true)을 거짓(false)으로, 거짓을 참으로 바꾸는 연산자입니다. |
3 | ++ | 증가 연산자 | ++a; 또는 a++; | 변수 a에 1을 더한 후 a에 저장한다. |
4 | -- | 감소 연산자 | --a; 또는 a--; | 변수 a에 1을 뺀 후 a에 저장한다. |
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = -1;
int b = 2;
System.out.println(a);
System.out.println(-b); //부호를 바꿔줍니다.
boolean c = true;
System.out.println(!c); // 값을 바꾸어 출력합니다.
int d = 1;
d++; // d의 값을 1 증가
System.out.println(d); // 증가되었으므로 2
System.out.println(++d); // 증가시킨 다음에 출력했으므로 3
System.out.println(d++); // 먼저 3을 출력한 다음에 1증가
System.out.println(d); // 현재 d는 4
}
}
-1
-2
false
2
3
3
4
위의 내용 중 증감 연산자의 내용이 이해하기 좀 까다로운 부분이 있습니다.
++a; --> a = 1 + a; (1을 먼저 더해주어 a+1이라는 결과를 출력합니다.)
a++; --> a = a + 1; (a를 먼저 출력한 후 1을 더해줍니다.)
4. 비교 연산자(equals)
양 변을 비교해 맞으면 참(true) 다르면 거짓(false)를 결과를 출력합니다.
주로 반복문이나 조건문과 같은 제어문에 사용됩니다.
NO | 연산자 | 종류 | 사용방법 | 설명 |
1 | == | 같다 | a == b | a, b가 같으면 참 |
2 | < | 작다 | a < b | a가 b보다 작으면 참 |
3 | > | 크다 | a > b | a가 b보다 크면 참 |
4 | <= | 작거나 같다 | a <= b | a가 b보다 작거나 같으면 참 |
5 | >= | 크거나 같다 | a >= b | a가 b보다 크거나 같으면 참 |
6 | != | 같지 않다 | a != b | a와 b가 같지 않으면 참 |
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = 5;
int b = 10;
inc c = 15;
System.out.println(a < b);
System.out.println(a + b >= c);
double d = 2.152;
double e = 4.154;
System.out.println(a != b);
String f = "Hello JAVA!";
System.out.println( c1.equals("Hello java!"));
System.out.println( c1.equals("Hello JAVA!"));
}
}
true
true
true
false
true
자바의 문자열에서는 대소문자를 구분해야합니다. 정확하게 일치해야 true가 출력이 됩니다.
또한, 연산자와는 다르게 문자열의 비교는 equlas()라는 메서드를 사용합니다.
5. 논리 연산자
NO | 연산자 | 종류 | 사용방법 | 설명 |
1 | && | AND | a && b | a, b가 모두 참이 되어야 함. |
2 | || | OR | a || b | a, b 둘 중 하나가 참이 되어야 함. |
3 | ! | NOT | !a | a가 참이면 거짓이고, 거짓이면 참이 됨. |
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = 5;
System.out.println(4 < a && a < 10); // 4 < a < 10
System.out.println((4 < a && a < 10)&& a%2 == 0);
System.out.println((4 < a && a < 10)|| a%2 == 0);
}
}
true
false
true
컴퓨터 언어는 각각 비교를 해주어야 합니다.
ex)
4 < a < 10 → 사용할 수 없습니다.
대신 a > 4 && a < 10 → 사용할 수 있습니다.
6. 비트 연산자
연산하는 값을 이진수로 표현했을 때, 규칙에 따라 알맞은 결과를 반환합니다.
NO | 연산자 | 종류 | 사용방법 | 설명 |
1 | & | 비트 AND | a & b | 변수 a, b의 비트 단위의 AND |
2 | | | 비트 OR | a | b | 변수 a, b의 비트 단위의 OR |
3 | ^ | 비트 NOR | a ^ b | 변수 a, b의 비트 단위의 XOR |
4 | ~ | 비트 NOT | ~a | 변수 a의 단위의 부정 |
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = 15;
int b = 5;
System.out.println(a | b); // 1111 or 0101 → 1111
System.out.println(a & b); // 1111 and 0101 → 0101
System.out.println(a ^ b); // 1111 xor 0101 → 1010
System.out.println(a >> 2); // 1111 → 0011
System.out.println(b << 4); // 0101 → 01010000
}
}
15
5
10
3
80
비트연산자를 사용할 때에는 이진수에 대해 잘 알아야합니다!
7. 기타 연산자
(1) 삼항 연산자
package java1211;
public class Calculate {
public static void main(String[] args) {
int age = 17;
System.out.println(age > 19 ? "성인입니다." : "청소년입니다.");
// if(age > 19){
// System.out.println("성인입니다.");
// } else {
// System.out.println("청소년입니다.");
// }
// if문을 생략해서 삼항연산자의 코드와 같이 작성할 수 있습니다.
}
}
청소년입니다.
조건 ? 참일때 결과 : 거짓일때 결과
(2) 대입 연산자
NO | 연산자 | 적용 예시 | 형식 | 설명 |
1 | = | a = 1 | a = 1 | 변수 a에 1을 저장 |
2 | +=(더하기) | a += 2 | a = a + 2 | 변수 a에 2를 더해 다시 a에 저장 |
3 | -=(빼기) | a -= 4 | a = a - 4 | 변수 a에 4를 뺀 후 다시 a에 저장 |
4 | *=(곱하기) | a *= 7 | a = a * 7 | 변수 a에 7을 곱한 후 다시 a에 저장 |
5 | /=(나누기) | a /= 3 | a = a / 3 | 변수 a를 3으로 나눈 몫을 다시 a에 저장 |
6 | %=(나머지) | a %= 5 | a = a % 5 | 변수 a를 5로 나눈 나머지를 a에 저장 |
package java1211;
public class Calculate {
public static void main(String[] args) {
int a = 3;
a += 1;
System.out.println(a);
a /= 2;
System.out.println(a);
a += a;
System.out.println(a);
}
}
4
2
4
'BackEnd > Java' 카테고리의 다른 글
[java] 배열(array) (0) | 2022.12.12 |
---|---|
[java] 2022.12.08 추가 연습 문제 풀이 (0) | 2022.12.12 |
[java] 2022.12.08 연습 문제 풀이 (2) | 2022.12.12 |
[java] 반복문(for, while, do~while) (0) | 2022.12.12 |
[java]변수와 상수 (0) | 2022.12.11 |