Java SE Tutorials/Operators
Operators in Java
Soul-Learner
2016. 11. 28. 18:22
Java 프로그래밍, Java 언어의 연산자
연산자 우선순위 ( Operator Precedence )
| 연산자 |
우선순위 |
|
1 항 | 후증감(postfix) | expr++, expr-- | |
그 외의 단항 (unary) | ++expr --expr +expr -expr ~ ! | ||
2 항 | 산술 | 곱셈, 나눗셈, 나머지(multiplicative) | * / % |
덧셈, 뺄셈(additive) | + - | ||
비트 이동 (shift), 산술연산자 아님 |
<< >> >>> | ||
비교 | 관계(relational) | < > <= >= instanceof | |
동등 (equality) | == != | ||
비트 | bitwise AND | & | |
bitwise exclusive OR | ^ | ||
bitwise inclusive OR | | | ||
논리 | logical AND | &&, & | |
logical OR | ||, | | ||
3 항 | 3항 (ternary) | ? : | |
할당 | 할당 | = += -= *= /= %= &= ^= |= <<= >>= >>>= |
할당 연산자 (단순 할당 연산자, Assignment Operator ) : 우측의 값을 왼쪽의 변수에 할당한다
boolean b = false;
int i = 100;
final double PI = 3.141592;
String msg = "학습의 왕도는 이해와 반복";
산술 연산자 (Arithmetic Operators) ( + - * / % ) 사용 예
public class Tutorials { public static void main(String[] args) { int a = 11; int b = 2; int result = a + b; System.out.printf("%d + %d = %d %n", a, b, result); result = a - b; System.out.printf("%d - %d = %d %n", a, b, result); result = a * b; System.out.printf("%d * %d = %d %n", a, b, result); result = a / b; System.out.printf("%d / %d = %d %n", a, b, result); // 5, Not 5.1 result = a % b; System.out.printf("%d %% %d = %d %n", a, b, result); // 나눗셈의 몫이 소수로 나오게 하려면 계산에 사용된 어느 한개의 수의 자료형을 소수(double, float)로 한다 double d1 = 11.0; double res = d1 / b; System.out.printf("%f / %d = %f %n", d1, b, res); // + 연산자는 2개의 문자열을 결합할 때도 사용된다 String str = 1+2+3+"4"; // "64" System.out.printf("1+2+3+\"4\" = %s %n", str); str = "1"+2+3+4; // "1234" System.out.printf("\"1\"+2+3+4 = %s %n", str); } }
실행결과 화면
11 + 2 = 13
11 - 2 = 9
11 * 2 = 22
11 / 2 = 5
11 % 2 = 1
11.000000 / 2 = 5.500000
1+2+3+"4" = 64
"1"+2+3+4 = 1234
11 - 2 = 9
11 * 2 = 22
11 / 2 = 5
11 % 2 = 1
11.000000 / 2 = 5.500000
1+2+3+"4" = 64
"1"+2+3+4 = 1234
단항 연산자 ( Unary Operators, + - ++ -- ! )
+ : Unary Plus Operator ( 양수 표현 , 이 연산자를 사용하지 않아도 모든 수는 기본적으로 양수)
- : Unary Minus Operator ( 음수 표현 )
++ : Increment Operator ( 변수의 값에 1을 더한다 )
-- : Decrement Operator ( 변수의 값에서 1을 뺀다 )
! : Logical Negation Operator ( 논리부정 연산자 )
- : Unary Minus Operator ( 음수 표현 )
++ : Increment Operator ( 변수의 값에 1을 더한다 )
-- : Decrement Operator ( 변수의 값에서 1을 뺀다 )
! : Logical Negation Operator ( 논리부정 연산자 )
단항 연산자의 사용 예
public class Tutorials { public static void main(String[] args) { int num = +10; // + 연산자를 사용하지 않은 것과 동일함 System.out.printf("num = %d %n", num); // minus operator System.out.printf("num = %d %n", -num); // minus operator num = -num; System.out.printf("num = %d %n", num); // minus operator System.out.printf("num = %d %n", -num); // -(-10)=10 // minus operator num = -5; System.out.printf("5 + num = %d %n", 5+num); num = 0; // Post Increment(값이 사용된 후에 증가함) System.out.printf("num=%d, num++ = %d %n", num, num++); System.out.printf("num = %d %n", num); // num = 1 num = 0; // Pre Increment(값이 사용되기 전에 증가함) System.out.printf("num=%d, ++num = %d %n", num, ++num); num = 0; // Post Decrement(값이 사용된 후에 감소함) System.out.printf("num=%d, num-- = %d %n", num, num--); System.out.printf("num = %d %n", num); // num = -1 num = 0; // Pre Decrement(값이 사용되기 전에 감소함) System.out.printf("num=%d, --num = %d %n", num, --num); // 논리 부정 연산자 ! (Logical Negation) System.out.printf("!(2==3) = %b %n", !(2==3)); // true System.out.printf("!(2!=3) = %b %n", !(2!=3)); // false boolean res = (10%2) == 1; // 홀수인지 여부 System.out.printf("10은 짝수인가? --> %b %n", !res); // 짝수인지 여부 // Bitwise Inversion Operator ( Bitwise NOT Operator ) num = 4; String binaryStr = Integer.toBinaryString(4); System.out.printf("%d의 이진수 문자열 = %s %n", num, binaryStr); //"00000100" int invertedNum = ~num; binaryStr = Integer.toBinaryString(invertedNum); System.out.printf("%d의 비트 반전 결과 = %s %n", num, binaryStr); //"11111011" } }
위의 코드 실행결과
num = 10
num = -10
num = -10
num = 10
5 + num = 0
num=0, num++ = 0
num = 1
num=0, ++num = 1
num=0, num-- = 0
num = -1
num=0, --num = -1
!(2==3) = true
!(2!=3) = false
10은 짝수인가? --> true
4의 이진수 문자열 = 100
4의 비트 반전 결과 = 11111111111111111111111111111011
num = -10
num = -10
num = 10
5 + num = 0
num=0, num++ = 0
num = 1
num=0, ++num = 1
num=0, num-- = 0
num = -1
num=0, --num = -1
!(2==3) = true
!(2!=3) = false
10은 짝수인가? --> true
4의 이진수 문자열 = 100
4의 비트 반전 결과 = 11111111111111111111111111111011