[Java][국비교육] Day 5

Ga02·2023년 1월 2일

국비교육

목록 보기
4/82
//연산자 우선순위를 고려하지 않은 경우 ➡ 우선순위가 같은 식의 경우 왼쪽부터 차례대로 실행됨
System.out.println("num1 + num2 = " + num1 + num2 ); 👉🏻 "num1 + num2 = 166" 문자열 출력
➡ System.out.println("num1 + num2 = " + (num1 + num2) );

<산술연산자의 데이터타입>
System.out.println( 16 / 6 ); 👉🏻 2 intSystem.out.println( 16.0 / 6.0 ); 👉🏻 2.0 double<대입연산자>
int num1 = 11;
int num2 = num1; //num1 변수의 값 11을 활용하여 num3 변수공간에 대입
int num3, num4, num5;
num5 = num4 = num3 = num2;
👉🏻 num5 = 11

<산술대입연산자>
int num1 = 13, num2 = 14;
num2 += num1;
👉🏻 num2 = 27

<관계, 비교연산자>
int num1 = 10, num2 = 20;
boolean result = num1==num2;
👉🏻 result = false

<논리연산자>
boolean b1 = true, b2 = false;
System.out.println( b1 && b2 ); 👉🏻 false
System.out.pritnln( b1 || b2 ); 👉🏻 true
System.out.println( !(b1 && b2) ); 👉🏻 true

<증감연산자>
int num = 13;
System.out.println( num++ - 10 - ++num );
➡ num++ : 13 활용 후 14로 값 변경
➡ ++num : 15로 값 변경
 👉🏻 -12
 
 <Logical Test 02>

🔍 연산 Operation

컴퓨터(프로그램)의 모든 작동

➰ 연산자 Operator

연산을 기호로 나타낸 것

➰ 피연산자 Operand

연산의 대상 상수 변수 ...

➰ 연산자를 분류하는 기준

  • 피연산자의 개수

    • 단항연산자 Unary Operator 👉🏻 이항연산자보다 높은 우선순위를 가짐
    • 이항연산자 Binary Operator
    • 삼항연산자 Ternary Operator
  • 연산의 기능에 따른 분류

    • 산술 연산자
    • 관계 연산자
    • 논리 연산자
    • 대입 연산자
    • 비트 연산자
    • 기타 연산자
    • ...

Binary 이진의, 2개의 항, 이진법의 이루어진

  • Binary File 이진 파일 (Non Textfile) ➡ 메모장에서 깨져서 보임
    ◀▶ Text File 텍스트 파일 (문서 파일) ➡ ASCIICODE나 UNICODE처럼 문자 하나하나에 의미를 갖고 있는 파일 .java
    ➡ 메모장에서 글자로 보임

🔍 이항연산자

➰ 산술

+ - * / %

  • 산술연산은 반드시 피연산자들의 데이터타입이 같아야 연산할 수 있으며, 결과값도 같은 데이터타입을 가짐

➰ 대입 Assign

=의 오른쪽에 있는 값을 왼쪽에 있는 공간에 저장

  • 연산이 오른쪽에 왼쪽으로 진행되며 연산자 우선순위 거의 최하위

➰ 복합대입연산자 - 산술 대입

+= -= *= /=
num2 += num1;
👉🏻 num2 = num2 + num1;

➰ 관계, 비교

< > <= >= == !=

  • 왼쪽 피연산자를 기준으로 오른쪽 피연산자를 비교하고, 결과를 boolean 타입 true false으로 리턴

➰ 논리

&& || !

  • AND연산은 피연산자가 모두 true일 때 결과 true
  • OR연산은 피연산자 둘 중 하나라도 true일 때 결과 true
  • NOT연산 👉🏻 단항연산자
    • 논리(boolean)데이터의 관계를 따져서 결과를 부정 ➡ 반대로 바꿈
    • 관계연산자는 반대 조건으로, 논리연산자는 && ➡ ||, || ➡ &&으로 서로 치환됨
  • 논리연산자의 단축연산(Short cut)
    • AND연산은 왼쪽 피연산자가 false오른쪽 항의 연산을 수행하지 않음 👉🏻 결과값이 무조건 false이므로
    • OR연산은 왼쪽 피연산자가 true오른쪽 항의 연산을 수행하지 않음 👉🏻 결과값이 무조건 true이므로

🔍 단항연산자

➰ 부호 Sign

  • + 양수
  • - 음수
  • . 참조연산자
  • ! 논리부정연산자
  • (type) 형변환연산자

➰ 증감

++ --
피연산자로 적용한 변수의 값을 1 증가, 감소시킴

  • 전위 증감연산자는 변수의 값을 활용하기 전에 값을 먼저 증감시킴
  • 후위 증감연산자는 변수의 값을 먼저 활용한 후에 값을 증감시킴

🔍 데이터 형 변환 Data Type Casting

데이터의 자료형을 일시적으로 다른 타입으로 변환하는 것 Type Casting / Casting

  • 연산은 피연산자들의 데이터타입이 같아야 수행가능
  • 연산자에 맞게 데이터타입을 적용해야 함
    👉🏻 형변환을 통해 데이터타입을 원하는 형식으로 변환 후 연산할 수 있음

example📄
산술연산자는 피연산자의 자료형이 같아야하며, 연산결과도 같은 타입으로 반환

➰ 자동 형변환 (암묵적, 암시적, 묵시적)

표현범위가 작은 데이터를 큰 데이터로 사용하려고 할 때 자동으로 변환됨

example📄
11 + 34.56 ( int + double )
👉🏻 11.0 + 34.56 ( double + double ➡ int 형을 double형으로 자동 형변환 )
👉🏻 45.56 ( double )

➰ 강제 형변환

표현범위가 넓은 큰 데이터를 작은 데이터로 사용하려고 할 때 형변환 연산자를 사용하여 강제 형변환을 적용

  • 데이터 또는 변수 앞에 (type) 데이터 형식으로 적용

example📄
11 + (int) 34.56 ( int + (int) double )
👉🏻 11 + 34 ( int + int )
👉🏻 45 ( int )

  • 자바 자료형의 표현범위 비교
    • boolean은 표현범위를 비교할 수 없음 👉🏻 형변환 되지 않음
byte < short < int < long < float < double
		char < int

🔍 디버그 Debug

코드를 한줄씩 실행하며 잘 수행되는지 확인할 수 있는 모드

  • 더블클릭으로 중단점(Break Point) 설정 후 디버그 실행 👉🏻 해당 코드부터 한줄씩 변수의 변화 및 실행상황 관찰 가능
  • 선언코드는 실행하는 코드가 아님
  • step overF6는 코드를 한줄씩 실행
profile
IT꿈나무 댓츠미

0개의 댓글