Skip to content

Latest commit

 

History

History
110 lines (107 loc) · 6.04 KB

File metadata and controls

110 lines (107 loc) · 6.04 KB

1. 형변환

  • 자료형 변환해주는 기능
  • 묵시적(자동) 형변환과 명시적(강제) 형변환
  • 묵시적 형변환은 바이트 크기가 작은 단위의 값을 큰 단위의 값으로 변경 ex) int a = 10; long b = a; //a의 자료형이 자동으로 long으로 변경
  • 묵시적 형변환 2 : 좀 더 세밀한 자료형으로 자동으로 형변환 ex) int a = 10; float b = a; //int와 float가 같은 4byte지만 실수가 좀 더 세밀하게 표현할 수 있어서 a가 float로 자동 형변환
  • long과 float의 형변환은 long이 8byte float가 4byte지만 실수가 좀 더 세밀한 수를 표현할 수 있고 표현범위가 넓기 때문에 long -> float로 형변환된다.
  • 형변환되는 순서 byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
  • 명시적 형변환 1 : 큰 단위의 자료형을 작은 단위의 자료형에 대입할 때
    작은단위인 자료형을 명시하여 형변환 ex) long longVal = 10000L; int intVal = (int)longVal; int intVal2 = 20; short shortVal = (short)intVal2;
  • 명시적 형변환2 : 좀 더 세밀한 자료형의 값을 상대적으로 덜 세밀한 자료형으로 명시하여 형변환 ex) float floatVal = 3.14f; int intVal = (int)floatVal;
  • 연산에서의 형변환 : 바이트가 큰 자료형과 바이트가 작은 자료형을 연산할 때 작은 자료형이 자동으로 큰 자료형으로 변환된다.
  • 문자열 결합 연산자(+) : 문자열(String)과 다른 자료형을 + 연산하면 문자열 결합 연산으로 인식하여 다른 자료형이 문자열 형변환된 후 연산("ab" + "cd" ="abcd")

2. 연산자(operator)

  • 단항연산자, 이항연산자, 삼항연산자
  • 항(operand)은 피연산자를 의미한다.
  • 단항연산자 : 항이 하나인 연산자, num++
  • 이항연산자 : 항이 두개인 연산자, n1 + n2
  • 삼항연산자 : 항이 세개인 연산자 삼항 조건 연산자만 포함 (a > 10) ? "succcess" : "fail"

3. 단항연산자

  • 증감연산자, 부호연산자가 대표적인 단항연산자이다.
  • 부호연산자는 부호를 변경하는 연산자 ex) +num1 , -num2 => -부호연산자를 사용하면 부호가 반전된다.
  • 증감연산자(증가 감소 연산자) : 전위연산자와 후위연산자로 나뉨 ++, -- => ++num(전위), num++(후위)
  • 전위연산자 : 증감연산자가 항(피연산자)앞에 위치 ex) ++num1(num1 = num1 + 1), --num2(num2 = num2 - 1)
  • 후위연산자 : 증감연산자가 항(피연산자)뒤에 위치 ex) num1++, num2--
  • 전위, 후위 연산자는 연산방식에는 차이가 없고 연산 및 동작 순서에 차이가 남 ex) int intVal1 = 10; System.out.println(++intVal1); // "11 출력" 전위연산자는 어떠한 동작발생(출력)전 연산이 실행 int intVal2 = 10; System.out.println(intVal2++); // "10 출력" 후위연산자는 동작발생(출력)후 연산이 실행

4. 이항연산자

  • 대입연산자(=), 산술연산자(+, -, *, /, %:나머지연산), 복합대입연산자(+=, -=, *=, /=, %=), 관계연산자(<, >, <=, >=, ==, !=), 논리연산자(&&, ||, !)

  • 대입연산자(=) : 왼쪽 항의 변수에 오른쪽의 항의 값을 대입 ex) int a; int b = 10; a = b; //a에 b의 값인 10 대입

  • 산술연산자 : 왼쪽 항의 값에서 오른쪽 항의 값을 산술연산. %(나머지연산자)는 왼쪽 항의 값에서 오른쪽 항의 값을 나눈 나머지 값을 반환해주는 연산자.
    ex) int c = 11; int d = 2; int e = c % d; //e에 11을 2로 나눈 나머지가 대입, 1이 대입

  • 복합 대입 연산자 : 왼쪽 항의 값에서 오른쪽 항의 값을 대입연산자 앞의 산술연산자로 산술연산한 결과를 왼쪽항에 대입 ex) int f = 100; int g = 10; f += g; // f = f + g; => f = 110 f -= g; // f = f - g; => f = 100 f *= g; // f = f * g; => f = 1000 f /= g; // f = f / g; => f = 100 f %= g; // f = f % g; => f = 0

  • 관계연산자 : 왼쪽 항의 값을 기준으로 오른쪽 항의 값과 크기 또는 동일여부를 연산. 결과값은 true, false 반환된다. ex) 10 > 100 => false 10 < 100 => true 10 >= 100 => false 10 <= 100 => true 10 == 100 => false 10 != 100 => true

  • 논리연산자 : 두 항의 논리곱(&&), 논리합(||), 부정(!) 연산을 해주는 연산자 // 조건문에서 많이 쓰인다 논리곱(&&) : 두 항이 모두 true여야 true 반환. false가 하나라도 있으면 false 반환. ex) 10 <20 && 30 <40 => true 10 >20 && 30 <40 => false //10은 20보다 크지 않음

  • 논리합(||) : 두 항중 하나라도 true면 true를 반환. 모두 false여야 fasle 반환 ex) 10 <20(t) && 30 <40(t) => true 10 >20(f) && 30 <40(t) => true 10 >20(f) && 30 >40(f) => false //모든 조건이 false여야 false 성립

  • 부정(!) : 부정연산자 오른쪽의 항의 값이 true면 false를 반환. false면 true를 반환 ex) !(10 <20(t)) => false // 10은 20보다 작다는것을 부정한다 => 거짓 !(10 >20(f)) => true // 10은 20보다 크다는것을 부정한다 => 진실

5 삼항연산자

  • 삼항 조건 연산자만 존재한다.
  • 삼항 조건 연산자 : A(조건이나 true나 false) ? B(A의 조건이 true이거나 A값이 true일때 동작할 로직이나 선택될 값) : C(A의 조건이 false이거나 A의 값이 false일때 동작할 로직이나 선택될 값) ex) int a = 10; int b = 21' int c = a < b ? b : a; => a < b가 true일 경우 c에 b의 값을 대입, flase일 경우 c에 a의 값을 대입 => a < b가 true이기 때문에 c는 b값인 21이 된다. int d = a > b ? a + b : a - b; => a > b가 false이기 때문에 a - b의 값인 -11이 된다.
  • 삼항 조건 연산자의 중첩
    A ? B : C ? D : E;
    A ? B ? C : D : E ? F : J;
    첫 번째 조건이 끝나고 다시 삼항 조건연산자를 생성했을 때