Language/Java
[JAVA 13] 자바 연산자 ( Operator )
reifier.tistory.com 으로 이전하였습니다.
2018. 2. 8. 14:54
반응형
■ Operator ( 연산자 )
1. 데이터를 연산하게 하는 기호
2. 종류
(01) 산술 연산자
+ , - , * , / , %
순서대로 더하기 , 빼기 , 곱하기 , (나누기)몫 , (나누기)나머지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Operator1{ // 산술 연산자 int a = 10; int b = 5; void m1(){ // + , - , * , / , % int r1 = a+b; // result 결과 = r int r2 = a-b; int r3 = a*b; int r4 = a/b; int r5 = a%b; System.out.println(" 더하기 > r1 : " + r1); System.out.println(" 빼기 > r2 : " + r2); System.out.println(" 곱하기 > r3 : " + r3); System.out.println(" 몫 > r4 : " + r4); System.out.println(" 나머지 > r5 : " + r5); } public static void main(String[] args){ Operator1 os1 = new Operator1(); os1.m1(); } } | cs |
cf) +연산자를 String 과 함께 사용시 '결합 연산자'가 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Operator0{ int a = 10; String b = "10"; void m1(){ System.out.println("1. 10" + a); System.out.println("2. " + a + b); } void m2(){ System.out.println("1" + a + 10); System.out.println(" 답은 21 이 아니라, 11010 이 된다."); System.out.println("1" + ( a + 10 )); System.out.println(" 답은 220이 된다."); } public static void main(String[] args){ Operator0 ot = new Operator0(); ot.m1(); System.out.println(" 답은 20 이 아니라, 1010 이 된다."); ot.m2(); } } | cs |
(02) 증감 연산자
++ , --
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | class Operator2{ // 증감 연산자 void m1(){ // + , - , * , / , % int a = 10; System.out.println("1. a : " + a); System.out.println("++a : " + (++a)); // 우선순위가 가장 높다. System.out.println("2. a : " + a); } void m2(){ // + , - , * , / , % int a = 10; System.out.println("1. a : " + a); System.out.println("a++ : " + (a++)); // 우선순위가 가장 낮다. System.out.println("2. a : " + a); } public static void main(String[] args){ Operator2 os2 = new Operator2(); os2.m1(); System.out.println(""); // 가독성을 위해서 한칸 내림 os2.m2(); } } | cs |
(03) 대입 연산자
=
대입 연산자는 이해하기 쉽고,
이전 포스트에서 부터 계속 쓰이던 연산자이기 때문에 생략하겠습니다.
(04) 산술 대입 연산자
+= , -= , *= , /= , %=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class Operator4{ // 산술 대입 연산자 int a = 10; int b = 5; void m1(){ // + , - , * , / , % a += b; /* a *= b; a /= b; a %= b; */ System.out.println(" a += b : " + a); /* System.out.println(" a -= b : " + a); System.out.println(" a *= b : " + a); System.out.println(" a /= b : " + a); System.out.println(" a %= b : " + a); */ } public static void main(String[] args){ Operator4 os4 = new Operator4(); os4.m1(); } } | cs |
(05) 비트 연산자
& , | , ^ , ~ , << , >> , >>> (시프트)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | class Operator5{ // 비트 연산자 int a = 10; // 16 8 4 2 1 <2^4 / 2^3 / 2^2 / 2^1 / 2^0> // 0 1 0 1 0 < 10을 2진법으로 변환 > int b = 9; // 16 8 4 2 1 <2^4 / 2^3 / 2^2 / 2^1 / 2^0> // 0 1 0 0 1 < 9를 2진법으로 변환 > void m(){ int c = a|b; // 1010 System.out.println("비트 | (또는) : " + c); // 1001 // a 와 b 를 비교하여 하나라도 1일 경우 1이다. // 1011 -> 8+0+2+1 = 11 int d = a&b; // 1010 System.out.println("비트 & (그리고) : " + d); // 1001 // a 와 b 를 비교하여 두개가 모두 1일 경우 1이다. // 1000 -> 8+0+0+0 = 8 int f = a^b; // 1010 System.out.println("비트 ^ (같지않으면): " + f); // 1001 // a 와 b 를 비교하여 두개가 하나만 1일 경우 1이다. // 0011 -> 0+0+2+1 = 3 int g = a<<b; System.out.println("비트 << (시프트) : " + g); // 죄송합니다. 아직 잘 모르겠습니다. // 최대한 빠르게 학습하겠습니다. } public static void main(String[] args){ new Operator5().m(); } } | //cs |
(06) 비교 연산자
== , != , > , < , >= , <=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Operator6{ // 비교 연산자 int a = 10; int b = 10; void m6(){ // >= , <= , > , < , == , != boolean r1 = (a == b); // a 와 b는 같다. System.out.println(" a == b : " + r1); System.out.println(""); boolean r2 = (a != b); // a 는 b가 아니다(다르다). System.out.println(" a != b : " + r2); System.out.println(""); boolean r3 = (a >= ++b); // a 가 b 보다 크거나 같다. System.out.println(" a >= b : " + r3); System.out.println(" b=10 -> : " + b); } public static void main(String[] args){ Operator6 os6 = new Operator6(); os6.m6(); } } | cs |
(07) 논리 연산자
&& , & , || , |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Operator7{ // 논리 연산자 int a = 10; int b = 10; void m7(){ // && , & , || , | boolean r1 = true && (a==b); // A && B : A 와 B 의 결과가 모두 같다면 true System.out.println("r1 : " + r1); boolean r2 = true || (a>b); // A || B : A 와 B 의 결과가 하나만 true 라도 true System.out.println("r2 : " + r2); // Short Circuit Effect } // || 와 | 는 같은 의미 이지만, // || 은 융통성이 있어서 앞에서 true 라면 뒤에는 보지 않는다. public static void main(String[] args){ new Operator7().m7(); } } | cs |
(08) 논리 대입 연산자
&= , |=
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Operator8{ // 논리 대입 연산자 void m8(){ // &= , |= boolean flag1 = true; flag1 &= false; boolean flag2 = true; flag2 |= false; System.out.println("flag1 : " + flag1); System.out.println("flag2 : " + flag2); } public static void main(String[] args) { new Operator8().m8(); } } | cs |
(09) 조건 연산자 (=삼항 연산자)
A? B:C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | class Operator9{ // 삼항(조건) A? B:C void m9_1(){ int a = 10; String r = ( a > 20 )? "맞아요 (삼항)":"틀려요 (삼항)"; System.out.println(r); } void m9_2(){ int a = 10; String r = ""; if(a > 20){ r = "맞아요 (if)"; }else{ r = "틀려요 (if)"; } System.out.println(r); } public static void main(String[] args) { Operator9 o9 = new Operator9(); o9.m9_1(); o9.m9_2(); } } | cs |
(10) instanceof
객체 instanceof클래스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Operator10 { // 객체 instanceof 클래스 void m10(){ String str = "CIVIC"; boolean r1 = str instanceof Object; System.out.println("r1 : " + r1); Object obj = str; boolean r2 = obj instanceof String; System.out.println("r2 : " + r2); } public static void main(String[] args) { new Operator10().m10(); } } | cs |
반응형