
연산자와 피연산자에 대한 이해
- 연산자 : 계산할 때 계산의 목적이 되는 것
- 덧셈, 뺄셈처럼 계산할 기호
- 피연산자 : 계산할 때 계산의 대상이 되는 것
- 연산자로 인해 계산되는 숫자
// 사칙연산
System.out.println(4 + 2);
System.out.println(4 - 2);
System.out.println(4 * 2);
System.out.println(4 / 2);
System.out.println(5 / 2);
System.out.println(2 / 4);
System.out.println(4 % 2);
System.out.println(5 % 2);
System.out.println("========================");
// 우선순위 연산
System.out.println(2 +2 * 2);
System.out.println((2+2)*2);
System.out.println(2+(2*2)); //고의로 우선순위를 줬지만 주지 않을 때와 값이 같음 이미 우선순위인 연산에는 주지 않아도 됨
// 변수를 이용한 연산
int a = 20;
int b = 10;
int c;
c = a+b;
System.out.println(c);
c = a-b;
System.out.println(c);
c= a*b;
System.out.println(c);
c= a/b;
System.out.println(c);
c=a%b;
System.out.println(c);
System.out.println(10 > 9); // 10이 9보다 크니? : true
System.out.println(10 >= 9); // 10이 9보다 크거나 같니? : true
System.out.println(10 < 9); // 10이 9보다 작니? : false
System.out.println(10 <= 9); // 10이 9보다 작거나 같니? : false
System.out.println(10 == 10); // 10이 10이랑 같니? : true
System.out.println(10 == 9); // 10이 9랑 같니? : false
System.out.println(10 != 10); // 10이 10이 아니니? : false
System.out.println(10 != 9); // 10이 9가 아니니? : true
// 논리연산자
// 비교 연산의 결과값으로 받을 수 있는 boolean 값을 연결하는 연산자
// 조건을 연결 하였을 때 boolean 값들을 조합하여 참(true) 또는 거짓(false)값인 boolean값을 출력
//&&(AND), ||(OR), !(NOT)
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = false;
System.out.println(flag1);
System.out.println(flag2);
System.out.println(flag3);
// (1) 의 연산자 중 하나라도 true이면 true => 또는 (OR:||)
System.out.println("======================");
System.out.println(flag1 || flag2); // true
System.out.println(flag1 || flag2 || flag3); // true
//(2) 의 연산자 중 모두 true ==> 그리고 (AND:&&)
System.out.println("======================");
System.out.println(flag1 && flag2); // true
System.out.println(flag1 && flag2 && flag3); // false
//(3) AND
System.out.println("======================");
System.out.println((5 > 3) && (3 > 1)); // true && true => true
System.out.println((5 > 3) && (3 < 1)); // true && false => false
// (4)
System.out.println("======================");
System.out.println((5 > 3) || (3 > 1)); // true || true => true
System.out.println((5 < 3) || (3 > 1)); // false || true => true
System.out.println((5 < 3) || (3 < 1)); // false || false => false
// System.out.println(2 < 3 < 5); // 불가능
// 논리 부정 연산자 ( ! : NOT)
System.out.println("======================");
System.out.println(!flag1);//false
System.out.println(!flag3);//true
System.out.println(!(5==5));//false
System.out.println(!(5==3));//true
// 변수를 연산해서 그 자리에서 저장하는 연산자
// =(기본연산자)
// +=, -=, *= .... (복합대입연산자)
// ++ : +=, -- : -=
int number = 10;
number = number +2;
System.out.println(number);
number = number-2;
System.out.println(number);
number = number * 2;
System.out.println(number);
number = number / 2;
System.out.println(number);
System.out.println("================");
// 복합대입연산자
number =10;
number += 2; // number = number +2;
System.out.println(number);
number -= 2;
System.out.println(number);
number *= 2;
System.out.println(number);
number /= 2;
System.out.println(number);
number %= 2;
System.out.println(number);
// ++ , --
// number = number+1;
// number +=1;
System.out.println("================");
number++;
System.out.println(number);
// 대입연산자에서 주의해야 하는 점
// ++, --
int a = 10;
int b = 10;
int val = ++a + b-- ; // 11 + 9 = 20이라 예상
System.out.println(val); // 21
// 예상과 다른 이유 :
// ++a는 ++a + b-- 연산 전에 a값을 먼저 연산
// b--는 ++a + b-- 연산 후에 b값을 연산
val = ++a + --b ;
System.out.println(val); // 20
// 기타연산자
// (1) 형변환 연산자
int intNumber = 93 + (int)98.8;
System.out.println(intNumber);
double doubleNumber = (double)93 + 98.8; // 93.0 + 98.8
System.out.println(doubleNumber);
//(2) 삼항 연산자
// 비교연산자와 항상 함께 쓰인다.
// 비교연산자의 결과 : true or false -> 이 결과의 값에 따라 결정되는 무언가
// 조건? 참 : 거짓
int x =1;
int y =9;
boolean b = (x == y)? true : false;
// x 와 y랑 다르니?
String s = (x != y)? "정답" :"오답";
System.out.println(s);
int max = (x > y) ? x : y;
System.out.println(max);
int min = (x < y) ? x : y;
System.out.println(min);
// (3) instanceof(3주차에 클래스와 객체 배우면서 자세히..)
// 피 연산자가 조건에 명시된 클래스의 객체인지 비교히여
// 맞으면 -> true, 틀리면 -> false
int x = 2;
int y = 9;
int z = 10;
boolean result = x < y && y < z; // true && true
System.out.println(result);
System.out.println("=======");
result = x + 10 < y && y < z; // false ~~~ 이미 앞 연산이 false가 나왔고 &&로 비교 연산을 하니까 뒤에는 안 봐도 false
System.out.println(result);
System.out.println("=======");
result = x + 2 + 3 > y;
System.out.println(result);
System.out.println("=======");
result = (x+2)*3 > y;// true
System.out.println(result);
- Byte 를 8등분한게 8bit
- Bit는 0,1 둘 중의 하나의 값만을 저장하는 컴퓨터가 저장 가능한 가장 작은 단위
- 컴퓨터의 가장 작은 단위로 가장 빠른 연산
- 8bit의 자리수를 옮기는 것
- '<<(왼쪽으로 자리수 옮기기)', '>>(오른쪽으로 자리수 옮기기)'
- 0,1은 2진수 값
- 자리수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는 것
- 자리수를 오른쪽으로 옮기는 수만큼 2의 배수로 나눗셈이 연산되는 것
- 1010 -> 0101 ( 10 -> 5)
👀 2주차 강의를 듣기 시작했다. 아직까지는 어려움없이 잘 듣고 있다. 아는 내용이라고 방심하지 말고 잘 듣고 정리해야겠다. 오늘은 일정이 있어서 강의를 짧게 들었지만 남은 강의는 빠르게 다 들어봐야겠다.
🐾 목표
12/ 31일까지 java 강의 1회독 하기