Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

초보자의 개발 일지

[JAVA] -형변환, 연산자, 문자열비교- 본문

Programming/Java

[JAVA] -형변환, 연산자, 문자열비교-

초보자12 2022. 11. 21. 22:21

 이전에 배운 내용

● 리터럴, 상수

 

●  형 변환

 

● 연산자

 

 

오늘 배운 내용

● 조건문 

 

● 반복문 

 

 

 

 

 

 

-  지난 내용 복습  -

 

- Type casting(형변환) 개념 정립 - 

 

프로그래밍 작업을 하다 보면 의도치 않게 데이터 손실이 발생하게 될 수도 있다.

또한 본인 또는 작업하는 사람이 예상한 값과 다른 값이 나올 수 있어 

형 변환을 통해 자료형 type을 맞춰줘야 하는 작업을 해야 할 수도 있다.

형 변환에는 두 가지 종류가 있다. 

 

-자동 형변환-

변수 a 의 값은 3으로 선언 되었지만, a + b 를 하면 자료형이 더 큰쪽으로 형 변환이 되어 3.0 + 3.14가 된다.

-강제 형변환-

변수 i 의 값은 강제 형변환을 통해 3으로 출력, i + d를 하면 자료형이 맞춰지면서 6이 된다.

(자료형)  변수명; 을 통해 강제 형 변환을 해준 것을 알 수있다.  

강제 형 변환을 통해 데이터 타입을 맞춰줘야 할 때도 있다는 것이 중요한 것 같았다.

 

 

-증감 연산자 예제 문제 풀기 -

증감 연산자 예제 문제

이 문제는 강사님께서 주신 예제 문제인데,  전위 연산, 후위 연산의 적절한 사용으로

증감 연산자의 개념에 익숙해지기에 좋은 문제였다.

풀이는 다음과 같다.

 

1.  number1++ 로 후위연산이 들어가서,  값은 10 그대로. number1 = 10 연산 후 number1 = 11

2   ++number1로  전위연산이 들어가서, 변한 11값에 1을 더함. number1 = 12

3. number2++로 후위연산이 들어가서, 값은 20 그대로. number2 = 20 연산 후 number2 = 21

4. 2와 3의 계산은  32

5.number1++로 후위연산이 들어가서, 값은 12 그대로. number1 = 12 연산 후 number1 = 13

6.--number2로 전위연산이 들어가서, 변한 21값에 1을 뺌. number2 = 20

7.--number3로 전위연산이 들어가서, 본값 30에 1을 더함. number3 = 29

8. 5와 6과 7의 계산은 61

9. 최종적인 number1의 값은 13

10.최종적인 number2의 값은 20

11.최종적인 number3의 값은 29

 

 

●   오늘 배운 내용 정리 

 

 

- 문자열 동등 비교시 주의 할 점과 사용에 대한 이해-

 

scanner로 입력을 받아 name 변수에 저장을 시켰고, 홍길동이라고 입력하였다.

 

결과는 "홍길동이 아닙니다."가 나오는데, 

이는 입력받은 "홍길동"의 주솟값과  name == "홍길동"에서 주솟값이 일치하지 않기 때문이다. 

 

scanner로 입력을 받아 name 변수에 저장을 시켰고, 홍길동이라고 입력하였다.

 

이번엔 동등 비교연산자가 아닌 , .equals() 라는 메소드를 사용하였다. 이는 

name으로 받은 데이터의 값이 () 기호 안에 값과 동등하느냐라는 뜻으로 

실제 주솟값을 일치시켜주어 "홍길동이 맞습니다."가 출력이 된다. 

 

 

 

 

 

이렇듯, 문자열을 비교할 때는 동등 비교연산자를 사용하면 안 된다. 

equals() 메소드를 사용하여 비교를 하는 법을 배웠다.

이는 조금 더 정확한 이해를 도울 수 있는 사진이다.

결과는 true, false, true로 출력이 된다.

 

1. 변수에 값을 넣으면 리터럴로써 바로 저장이 된다.

그 값에 똑같은 문자열이 들어오면 다른 데이터 할당이 아깝기 때문에 원래 있는 문자열을 그대로 빌려 가져온다.

 

2. new 연산자로 문자열을 만들면 힙 영역에 따로 값이 들어가 주솟값이 다르게 매칭된다. 

 

3. 문자열의 데이터 값을 비교하는 방식으로, 주솟값을 매칭하는 것은 아니다.