본문 바로가기

2023.11.21-2024.05.31

1205수업11일차(JAVA) - Operator

package dec05;

//연산자(102p) = 계산할 때 사용하는 기호, 순서

/*모든 프로그래밍에서는 데이터의 연산을 하기 위해 연산자를 사용합니다.

* 지금 배울 연산자는 자바 외 모든 언어에서 비슷하게 활용됩니다.

* 잘 알아두시면 편합니다.

*

* 주의해서 보셔야 할것은 연산자의 기능과 순서입니다.

* 연산자의 종류가 많기 때문에 모두 외우려고 하기보다는 자주  사용하시면서 익숙해지도록 하시면 좋습니다.

*

* 또한 아래 나열되는 연산자의 종류는 그 순서대로 정의한 것이기 때문에 그대로 외우시면 좋습니다.

 

* 1. 최우선 연산자

* . 닷, 점 = 클래스 또는 객체 소유의 변수 , 메소드

* [] 배열

* () 괄호

 

* 2. 단항 연산자

* !(논리 부정, not), ~(비트 반전), +/-(부호연산), ++/--(선행증감),

* 캐스팅(cast)

 

//! 논리 부정, not

System.out.println(!true);//false

System.out.println(1 != 2);// true

 

//비트 반전 0 -> 1, 1-> 0

System.out.println(Integer.toBinaryString(~1));

//0000000000000000000000000001 ->1

//11111111111111111111111111111110 ->-1

 

//선행증감

int num = 1; //변수를 1로 초기화

int num2 = ++num; //++ -> +1

//num에 +1을 "먼저"더해 그리고 num을 해 ->1 + 1

//num을 1 증가시킨 후에 num2에 대입해

 

System.out.println(num); //2 ++먼저 처리 후 num 처리

System.out.println(num2); //2

 

int num3 = ++num + num2;

System.out.println(num);//3

System.out.println(num2);//2

System.out.println(num3);//5

//계산 순서========= 선행증감, 산술, 대입

int num4 = --num + --num2 + --num3; //-- ->-1

//                     2           1              4

System.out.println(num4);//7

 

num =1; num2 = 1; num3 = 1; num4 = 1;

num2 = num--;//0

System.out.println(num);//0

System.out.println(num2);//1

 

num4 = ++num - --num2 + num3--;

System.out.println(num);//1

System.out.println(num2);//0

System.out.println(num3);//0

System.out.println(num4);//num=2가 되고 난 후 num3은 --가 되서 1이 된다.

 

* 3. 산술 연산자

* +, -, /, *, %(모듈러: 나눈 후 나머지 값을 가져갑니다.)

*

//산술 연산자 모듈러

num = 2;

num2 = 2;

num3 = 8 % 2;

//나누는 값이 더 클 경우에는 작은 수를 리턴합니다.

System.out.println(num3); //0

* 4. 쉬프트 연산자(잘안쓰이는 연산자)

* <<, >>, >>>

*

//쉬프트

num = 10;

System.out.println(Integer.toBinaryString(num));

//000000000000000000000000000001010

// ---> 2칸 밀어

System.out.println(Integer.toBinaryString(num >> 2));

//000000000000000000000000000000010

 

System.out.println(Integer.toBinaryString(num >> 3));

//000000000000000000000000000000001

 

System.out.println(Integer.toBinaryString(num << 2));

//0000000000000000000000000000101000

 

//System.err.println(10 << 2);// 40

 

System.out.println(Integer.toBinaryString(-1<< 2));

//11111111111111111111111111111111 -1

//11111111111111111111111111111100 -1 >> 2

//00111111111111111111111111111100 -1 >>> 2

//11111111111111111111111111111100 -1 << 2

* 5. 관계 연산자

* >, <, >=, <=, ==, !=

*

 

* 6. 비트 연산자

* &, |, ^

*

//비트 연산자 &(and, 논리곱), |(or, 논리합), ^ XOR

// & = 양쪽 모두 참일때 참

// | = 어느 한쪽이 참일때 참

// ^ = 한쪽이 참이고, 다른 한 쪽이 거짓일때 참

// 참^참 = 거짓

// 거짓^거짓 = 거짓

// 1010 = 10

// 0110 = 6

// 1110 = 1

System.out.println(10 ^ 6);

System.out.println();

* 7. 논리 연산자

* &&, ||

*

//논리연산자 &&, ||

System.out.println(1 +1 ==2 && false);

/* AND

* 참 && 참 = 참

* 참 && 거짓 = 거짓

* 거짓 && 참 = 거짓

* 거짓 && 거짓 = 거짓

*

* OR

* 참 || 참 = 참

* 참 || 거짓 = 참

* 거짓 || 참 = 참

* 거짓 || 거짓 = 거짓

*/

 

System.out.println(1>0.5 || true);

System.out.println(1 != 1-2 || true);

* 8. 삼항 연산자

* 조건식 ? 참일때 : 거짓일때

*

// 삼항 연산자 조건식 ? 참일때 : 거짓일때

 

num = 1;

if(num == 1) {

System.out.println("1입니다.");

} else {

System.out.println("1이 아닙니다.");

 

//조건식 ? 참일때 문장 : 거짓일때 문장;

System.out.println(num == 1 ? "1입니다" : "1이 아닙니다.");

* 9. 배정대입 연산자

* =, +=, -=, /=, %=

 

//배정대입

int number = 10;

number += 1;

number = number + 1;

 

number -= 1;

 

number /=2;

 

System.out.println(number);

 

* 10. 후행증감 연산자

* ++/--

*/