리우's IT Story
article thumbnail
Published 2023. 5. 17. 21:46
operator (연산자) JAVA기초
728x90
반응형

 

2023.05.17 - [JAVA기초] - Wrapper Class

 

Wrapper Class

2023.05.09 - [JAVA기초] - 자료형(데이터타입) 변수 선언, Wrapper클래스 자료형(데이터타입) 변수 선언, Wrapper클래스 자바개발환경세팅 2023.05.08 - [취업반 기록] - 작업 환경셋팅(자바) 작업 환경셋팅(자

ji7290.tistory.com

 

이전 글에서는 기본자료형->WrapperClass로 변환해서 

list에 담아보고 문자열을 정수형으로 변환해서 입력으로 받아서 출력해보았다.

 

 

현재 글에서는 연산자를 배워보자.

 

 

 

연산자 : 값을 계산하여 다른 값을 만들어내거나 변화시키는 기호 및 단어의 집합 


-연산자의 종류- 
산술연산  (+ , - , * , / , %)
대입연산 (=)
복합 대입 연산  (+= , -= , *= ,  /= , %=)
비교 연산 >,<,>=,<=,==,!==
논리연산 (AND,OR,NOT) && , || , !
증감연산 ++,--
부호연산 -
삼항 연산  A ? B : C
기타최우선연산 [ ], ( . )
기타 연산 : , () instanceof
1항(단항) 연산 : 1개의 항
2항 연산 : 2개의 항에 대하여 연산한다
3항 연산: 3개의 항에 대하여 연산한다.

 

n1-n2에서의 마이너스는 2항연산

 

answer = -answer;

-answer에서의 마이너스는 단항연산

 

 

 

산술연산

n1/ 변수 n2를 double로 형변환해서 연산하면  결과는 실수로 나타난다.

 

 

 

 

 

2)   산술연산은 양쪽 자료형에 따라 결과의 자료형이 달라진다
      -정수와 정수의 연산은 정수로 나타나고
      -한쪽이라도 실수가 포함되면 결과는 실수로나타난다.

 

콘솔

 

3) 나머지연산은 다음 경우에 활용할 수 있다.

 

 

카드번호 16자리 출력하기

카드번호 16자리를 임의로 입력해서 

0000-0000-0000-0000 형식으로 출력해보기

나머지와 몫을 구하는 데에 익숙해지기 위해서 이런식으로 코드를 작성했다.

정수형 변수를 long타입으로 바꾸면 형변환을 할 필요가 없겠다.

 

 

대입연산

복합대입연산자

우변의 값을 처리해서 n1에 대입한다. 

n1의 기존값을 참조하여 산술연산을 처리해서 n1에 담는다.

 

 

  ex) 게시글 조회수

컴파일 후 콘솔창

 

/=, *=, +=, %= 

나누기 곱하기 더하기 나머지 연산도 가능하다

binary변수를 반복문으로 10까지 루프시킬 때 종속문장 안에

binary변수에 복합대입연산자를 할당시켜서 2배씩 증가시킨다. 

컴파일 후 콘솔창

 

단항증감연산자

num++(후치) : num을 먼저 대입시키고 1을증가시킨다.

++num(전치) : 1을 증가시키고 num 에 대입한다.

그래서 콘솔창의 첫번째 줄에서는 증가시킨 값이 출력되지않고 실제로 데이터상에는 +1이  증가되어있다.(11)

++num에서 1을증가시키기에 num은 12가 되어있고 값이 출력되는것이다.

 

 

 

코드를 처음 배운다면 무엇보다 빨리 디버깅을 해서
내가 생각한 코드와 컴퓨터의 생각이 맞는지 교차검증을 해야한다.


자바기초학습시 유용한 pythonTutor

https://pythontutor.com/java.html#mode=edit

 

Java debugger - Java Tutor - Learn Java programming by visualizing code

Write code in Java 8 Visualize Execution hide exited frames [default] show all frames (Python) inline primitives and try to nest objects inline primitives, don't nest objects [default] render all objects on the heap (Python/Java) draw pointers as arrows [d

pythontutor.com

 

코드를 그대로 복사해서 package를 빼고 붙여넣는다.

visualize Execution을 클릭후

 

next와 prev를 클릭하면 코드의 흐름을 구체적으로 볼 수 있다.


비교연산 (boolean 값은 true가 됐든 false가 됐든  무조권  1바이트다.)

 

비교연산은 boolean타입으로 변수에 저장해두었다가 나중에 활용할 수 있다.

 

문자열은 ==로 일치여부를 판별하지않는다.

 

레퍼런스타입은 메모리에 똑같은 문자를 준비해놓고 동일한 리터럴을 가리키게 되있다.

String s3 는 new("apple") new연산자로 ("apple") 새로받은 문자열을 가리킨다.

 

컴파일 후 콘솔창

s1 == s2 는 서로다른 변수가 가리키는 대상이 같은 것이다.

s2 ==s3 는  가리키는 위치,대상이 다르다.

 

 

문자열을 비교할때는 equals함수를 쓰면된다.

컴파일 후 콘솔창

 

728x90
반응형
profile

리우's IT Story

@LRWoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!