[JAVA 스터디] 3주차 과제 : 자바 다양한 연산자 학습

2020. 11. 28. 13:38·Live Study
728x90
반응형

목표

자바가 제공하는 다양한 연산자를 학습

스터디 목차

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • instanceof
  • assignment(=) operator
  • 화살표(->) 연산자
  • 3항 연산자
  • 연산자 우선 순위
  • (optional) Java 13. switch 연산자

 

1. 산술 연산자

 

산술 연산자는 사칙연산을 다루는 기본적이면서도 가장 많이 사용되는 연산자이다.

산술 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자 이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

 

2. 비트 연산자

 

비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자이다.

또한, 비트 단위로 왼쪽이나 오른쪽으로 전체 비트를 이동하거나, 1의 보수를 만들 때도 사용한다.

 

3. 관계 연산자

 

비교 연산자라고도 한다.

관계 연산자의 결과는 true 혹은 false 값인 booleaan 자료형으로 반환이 된다.

관계 연산자 설명
> 왼쪽 항이 크면 참, 아니면 거짓을 반환함
< 왼쪽 항이 작으면 참, 아니면 거짓을 반환함
>= 왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환함
<= 왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환함
== 두 개 항의 값이 같으면 참, 아니면 거짓을 반환함
!= 두 개 항이 다르면 참, 아니면 거짓을 반환함

 

 

4. 논리 연산자

 

논리 연산자는 주어진 논리식을 판단하여, 참(true)과 거짓(false)을 결정하는 연산자이다.

AND 연산과 OR 연산은 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.

NOT 연산자는 피연산자가 단 하나뿐인 단항 연산자 이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽이다.

 

다음은 논리 연산자의 모든 동작의 결과를 보여주는 진리표(true table)이다.

논리연산자를 사용할시 주의할점

자바는 SCE(Short Circuit Evaluation) 연산을 사용한다.

SCE란 최단거리 연산이라고 생각하면 된다.

 

ex)

A && B 일때 A가 false 인경우 B조건을 실행 안하고 지나간다

A || B 일때 A가 true 이면 B조건을 실행 안하고 지나간다.

 

5. instanceof

 

instanceof 연산자란 instanceof 왼쪽에 위치한 참조 변수가 instanceof 오른쪽에 위치한 타입으로 형 변환 가능한 타입인지 연산한다.

형 변환이 가능하다면 true를 반환하고 가능하지 못하다면 false를 반환 한다.

 

6. assignment(=) operator (대입 연산자)

 

대입 연산자는 변수에 값을 대입할 때 사용하는 이항 연산자이며, 피연산자들의 결합 방향은 오른쪽에서 왼쪽이다.

또한, 앞서 살펴본 산술 연산자와 결합한 다양한 복합 대입 연산자가 존재한다.

 

7. 화살표(->) 연산자

 

자바에서는 화살표(->) 기호를 사용하여 람다 표현식을 작성한다.

JAVA8 부터 사용이 가능하고 코드를 간결하게 만들어준다.

 

(매개변수) -> { 실행문 ... }

 

 

8. 3항 연산자

 

삼항 연산자는 ? 앞의 조건식에 따라 결과값이 참(true) 이면 반환값 1 을 반환하고, 거짓(false)이면 반환값 2를 반환한다.

 

조건식 ? 반환값1 : 반환값2

 

 

9. 연산자 우선 순위

 

연산자 우선순위는 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자가 먼저 처리될 것인가를 결정 한다.

 

10. (optional) Java 13. switch operator

 

switch문에서 Java 12부터 콜론(:) 대신 화살표(->)연산자를 사용할 수 있다.

그리고 Java 13부터는 break 대신 yield를 사용한다.

 

기존 switch문

break의 위치에 따라 실행 결과가 달라질 수 있기 때문에 개발자가 의도적으로 break를 했는지 실수인지 파악하기 힘듬

 

강화된 switch 표현식

람다식에 -> 를 사용

여러 조건에 따라 ',' 로 구분해서 한번에 처리 가능, 예전 콜론 방식으로도 사용가능

 

반환값 받기

표현식으로 변경되었기 때문에 결과값을 반환 받는 형식으로 만들 수 있다.

 

반환값이 있는 표현식을 블록 구문으로 사용

yield 키워드를 사용해서 반환(break문 대신 사용)

return 키워드를 사용하면 컴파일 에러가 발생한다. (반환값이 없는 경우라면 return 사용할 수도 있다.)

 

 

 

 

 

 

 

Reference


 

www.tcpschool.com/

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

zbulletjournal.tistory.com/100

 

논리 연산자, SCE연산

논리연산과 논리연산자 논리 연산은 '불린 연산'(Boolean Operation)이라고도 한다. 논리 연산자는 참과 거짓으로 이루어지는 진리값이 피연산자인 연산자이다. 논리 부정 연산자 ! - 반복적으로 적용

zbulletjournal.tistory.com

toma0912.tistory.com/66

 

자바의 연산자 및 연산자 우선순위

안녕하세요. 오늘은 Java를 공부하면서 기본적인 '연산자'에 대해서 연산자가 무엇인지, 그 종류 및 연산자 우선순위에 대해서 포스팅해보려고 합니다. 1. 연산자란? 어떠한 기능 또는 어떤 대상

toma0912.tistory.com

dev-kani.tistory.com/21

 

[Java 14] Enhanced Switch Expressions

Java 12, 13에서 2번의 Preview를 통해 강화된 Switch 표현식이 Java 14에서 표준화되었다. 기존 switch 구문 public class SwitchExpressionsExample { public static void main(String[] args) { SwitchExpressi..

dev-kani.tistory.com

 

반응형

'Live Study' 카테고리의 다른 글

[JAVA 스터디] 6주차 과제 : 상속  (0) 2020.12.24
[JAVA 스터디] 5주차 과제 : 클래스  (0) 2020.12.18
[JAVA 스터디] 4주차 과제 : 제어문  (0) 2020.12.05
[JAVA 스터디] 2주차 과제 : 자바 데이터 타입, 변수 그리고 배열  (0) 2020.11.21
[JAVA 스터디] 1주차 과제: JVM은 무엇이며 JAVA 코드는 어떻게 실행하는것인가.  (0) 2020.11.15
'Live Study' 카테고리의 다른 글
  • [JAVA 스터디] 5주차 과제 : 클래스
  • [JAVA 스터디] 4주차 과제 : 제어문
  • [JAVA 스터디] 2주차 과제 : 자바 데이터 타입, 변수 그리고 배열
  • [JAVA 스터디] 1주차 과제: JVM은 무엇이며 JAVA 코드는 어떻게 실행하는것인가.
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스
    회고
    카카오인턴
    알고리즘
    SpringBoot
    jpa
    해결
    spring
    스파르타코딩클럽
    java
    항해99
    실전프로젝트
    그리디
    괄호
    김영한
    브루트포스
    정리
    후기
    조합
    코딩테스트
    버그
    파이썬
    백준
    에러
    orm
    미니프로젝트
    인프런
    카카오코딩테스트
    SFlash
    항해마켓
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[JAVA 스터디] 3주차 과제 : 자바 다양한 연산자 학습
상단으로

티스토리툴바