연산자(operator)에 대해 알아보자
연산자(operator)
여러 수식 계산을 위한 도구들이다.
| 최고 연산자 | , . () Iteger.parseInt(), 상속(inherrit)에서도 부모를 parenet.child 식으로 표시 5 * ( 2 + 3 ) 식으로 표시 |
| 증감 연산자 | ++, -, *, / %(moduler:나머지) int 10/3 =>3 int 10%3 =>1 |
| 시프트 연산자 | >>, <<, <=비트에서 맨 첫번째 비트가 1이면 - 부호를 의미한다. 0011 <- <<2 :1100(이동한 뒤 뒤에 00으로 채워지는데 이를 padding이라고 하고, 결과적으로 맨 첫번째 비트가 1이 되므로 -1100의 의미가 되어서 2^2+2^1=6이므로 -6이 되는 결과이므로 주의한다!! |
| 비교 연산자 | >(more than), <(less than), >=(more equal), <=(less equal), ==(equal), !=(not equal) 비교 연산자는 if, while,....등에서 조건을 표시할 때 사용된다. |
| 비트연산자 | &, |, ^(xor: exclusive(배타적) or), ~(not) 1100 : 1100&1010 => 1000 1010 : 1100 | 1010 => 1110 1000 : 1100 ^ 1010 => 1100 | 0101 => 1101 |
| 논리 연산자 | &&(and), ||(or), !(not) 논리 연산자도 if, while, ...등에서 여러조건들을 묶어서 조건을 표시할 때 사용된다. if ( a > 5 && b < 10) |
| 조건 연산자(삼항 연산자) | (조건 ? 참_값 : 거짓_값) if (a>0 ? 10 : 0 ) |
| 대입 연산자 | =(우측 값을 좌측에 대입), *=, /=, %=, +=, -= a *= 3 => a = a * 3의 의미 <=계산이 빠르기 때문이다. |
산술연산자
산술 연산자 : 4칙 연산과 나머지 값을 구하는 연산자이다.
package java03;
public class Test01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n1, n2;
n1 = 20;
n2 = 7;
int n3 = n1 + n2;
System.out.println("n3 = "+ n3);
n3 = n1 - n2;
System.out.println("n3 = " + n3); //결과 13
n3 = n1 / n2;
System.out.println("n3 = " + n3);
double n4 = (double)(n1 / n2);
System.out.println("n4 = " + n4);
double n5 = (double)n1 / (double) n2;
System.out.println("n5 = " + n5);
n3 = n1 % n2;
System.out.println("n3 = " + n3); //결과 6 - 나머지 출력
}
}

대입연산자
package java03;
public class Test02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n1 = 10, n2 = 7;
int n3 = n1 + n2;
System.out.println(" = operator:n1"+ n1 +", n2 "+ n2);
n3 = 13;
int n4 = 15;
System.out.println(" = operator:n3"+ n3 +", n4 "+ n4);
System.out.println("+= operator: n3 += n4\n"+(n3 += n4));
int n5 =10, n6 =3;
System.out.println(" = operator:n5"+ n5 +", n6 "+ n6);
System.out.println("/= operator: n5 / n6\n"+(n5 /= n6));
int n7 = 10, n8 =3;
int n9 = n7 %= n8;
System.out.println(" = operator:n7"+ n7 +", n8 "+ n2);
System.out.println("%= operator: n7 / n8\n" + n9);
}
}

비교연산자
package java03;
public class Test03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int n1 = 10;
int n2 =20;
boolean result; //True/False만 result라는 불리언 변수 선언
System.out.println("n1 ="+ n1 +"\nn2 =" + n2 );
result = n1 < n2;
System.out.println("n1 < n2 : " + result);
// boolean result = n1 < n2;
result = n1 == n2;
System.out.println("n1 == n2 : " + result);
result = n1 != n2;
System.out.println("n1 != n2 : " + result);
}
}

논리 연산자
package java03;
public class Test04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int myAge = 30;
int limit = 35;
System.out.println("myAge : "+myAge+"\n limit :"+ limit);
boolean result = ((limit - myAge) >= 5 && myAge > 30); // 둘 다 참일 때 True
System.out.println("&& 연산 결과: "+result);
System.out.println("-------------------\n");
int n1 = 10;
int n2 = 20;
boolean result2 = ((n1 += 10) > 20 || (n2 - 10 == 11)); //둘 중 하나만 참일 때도 True
System.out.println("|| 연산 결과 : "+ result2);
System.out.println("! 연산 결과 : "+ !result2);
}
}

비트연산자
package java03;
public class Test05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10; //1010
int b = 7; //0111
int c = a & b; //논리 곱: 두 값이 모두 1일 때만 1, 나머지는 0
System.out.println("c : "+ c);
int a2 = 12;
int b2 = 8;
int c2 = a2 | b2; // 논리 합: 두 값이 모두 0일 때만 0, 나머지는 1
System.out.println("c2 :" + c2);
int a3 = 9;
int b3 = 11;
int c3 = a3 ^ b3; //배타적 or (xor): 두 값이 서로 같을 때만 0, 서로 다를 때는 1
System.out.println("c3 :" + c3);
}
}

시프트 연산자
package java03;
public class Test06 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 12; // 1100
int b = 2;
int c = a >> b; // c =a >> 2 => 0011
System.out.println("c :"+ c);
int d = c << b; // d = c << 2 =>1100
System.out.println("d : "+ d);
char ch = 'F'; //ASCII 70 => 1000110
int num = 1;
char cha_result = (char)(ch >> num); // 0100011 => 35(ASCII코드 값#
System.out.println("cha_result : "+cha_result);
}
}

※아스키 코드 참조

증감연산자
package java03;
public class Test07 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
System.out.println("a : " + ++a); //1+10 => 11
// 미리 1을 10에 더해서 프린트해서 11이 됨
int b = 10;
System.out.println("b : " + b++); //10+1 =>10
//b까지만 프린트하고 나중에 추가되는 1은 프린트 되지 못해서 10까지만 프린트 됨
System.out.println("b++ : " + b); //11
// 이미 b에 1이 추가된 결과를 프린트해서 11이 프린트 됨.
}
}

삼항 연산자
package java03;
public class Test08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
int b = 15;
boolean result1;
result1 = ++a >= b ? true : false;
System.out.println("result1 : "+result1);
System.out.println("-------------------\n");
int n1 = 10;
int n2 = 20;
char result2;
result2 = ( n1 += n1) == n2 ? 'O' : 'X';
System.out.println("result2 : " + result2);
}
}

'JAVA' 카테고리의 다른 글
| [JAVA] 제어문/배열 (0) | 2022.07.21 |
|---|---|
| [JAVA]문제 풀이 1 (0) | 2022.07.20 |
| [JAVA]변수 타입2 (0) | 2022.07.19 |
| [JAVA] 변수 타입 1 (0) | 2022.07.19 |
| [JAVA] 실습 07-19 (0) | 2022.07.18 |
댓글