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함수를 쓰면된다.
'JAVA기초' 카테고리의 다른 글
제어문과 분기문(control statement) (1) | 2023.05.19 |
---|---|
이스케이프 시퀀스, 자바의 입력객체, scanner, buffer (0) | 2023.05.18 |
연산자[논리연산,삼항연산, 간단한 Quiz, 출력함수] (0) | 2023.05.18 |
Wrapper Class (0) | 2023.05.17 |
자료형(데이터타입) 변수 선언, Wrapper클래스 (0) | 2023.05.09 |