내일배움캠프/TIL

JAVA 입문 _ 김영한의 자바 입문 강의 - Day 3[연산자]

austindynasty 2024. 10. 17. 21:32

1. 연산자 : 계산을 수행하는 기호

- 산술 연산자 : +, -, *, /, % 등등 [주로 숫자를 계산하는 데 사용, 수학 연산을 수행]

- 증감 연산자 : ++, --

- 비교 연산자 : ==, !=, >, <, >=, <=

- 논리 연산자 : && (AND), ||(OR), !(NOT)

- 대입 연산자 : =, +=, -=, *=, /=, %=

- 삼항 연산자 : ? :

- 피연산자 : 연산 대상 ex)3, 4, a, b

★숫자는 0으로 나눌 수 없으므로 프로그램에서 오류가 발생한다. 

 

2. 문자열 더하기

실행결과 : hello world, srting1string2, a + b = 10, a + b = 20

★문자열인 String 타입에 다른 타입을 더하는 경우 대상 타입을 문자열로 변경한다. 

 

3. 연산자 우선순위

실행결과 : 7, 9

sum1은 연산자 우선순위에 의해 곱셈이 먼저 계산된다. sum2는 괄호를 사용해 덧셈이 먼저 처리되었다.

연산자 우선순위가 애매하거나 복잡하면 괄호를 사용하는 것이 편리하다. 

★코드는 명확하고 단순하게, 직관적으로 표현하는 것이 핵심! 외우지 말고 이해하고 넘어가자. 

 

4. 증감 연산자

실행결과 : 1, 2, 3, 4

변수 a의 값을 하나 증가시키려면 연산을 먼저 수행한 후 그 결과를 자신에게 다시 저장해야 한다. 

- 증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다. 

- ++a : 증감 연산자가 피연산자 앞에 있어 전위 증감 연산자라 한다.

- a++ : 증감 연산자가 피연산자 뒤에 있어 후위 증감 연산자라 한다. 

실행결과 :

a = 2 , b = 2

a = 2 , b = 1

 

5. 비교 연산자 

- == : 동등성, 동등한 지 확인하는 비교 연산자

- != : 불일치 연산자, !는 반대라는 뜻

- = 연산자와 == 연산자는 다르다. 

- 비교 연산자를 사용하면 true 또는 false 라는 결과가 나온다. 참 거짓은 boolean형을 사용한다. 

문자열이 같은 지 비교할 때는 ==이 아니라 .equals() 메서드를 사용해야 한다. ==는 실패할 경우가 있기 때문 (추후 학습)

 

6.논리 연산자 : boolean형인 true, false를 비교하는 데 사용한다.

변수의 위치를 변경해도 결과는 같다.

범위를 나타내는 경우 [ boolean result = 10 < a && a < 20 ] 형식으로 작성하면 가독성이 좋다. 

 

7. 대입 연산자 : 변수에 값을 할당한다.

- 산술 연산자와 대입 연산자를 한번에 축약해 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라고 한다.

ex) i = i + 3 → i += 3 : i 에 3을 더하고 이를 i에 다시 대입한다. 

 

8. 문제 풀이 

1) 다음과 같은 작업을 수행하는 프로그램을 작성하세요. 클래스 이름은 OperationEx1 이라고 적어주세요.

- num1, num2, num3 라는 이름의 세 개의 int 변수를 선언하고, 각각 10, 20 ,30 으로 초기화하세요.

- 세 변수의 합을 계산하고, 그 결과를 sum이라는 변수에 저장하세요.

- 세 변수의 평균을 계산하고, 그 결과를 average 라는 이름의 int 변수에 저장하세요. 평균 계산 시 소수점 이하의 결과는 버림하세요. 

 

2) 다음 double 변수들을 선언하고 그 합과 평균을 출력하는 프로그램을 작성하세요.

double val1 = 1.5

double val2 = 2.5

double val3 = 3.5

 

3) int형 변수 score를 선언하세요. score가 80점 이상이고 100점 이하이면 true를 출력하고, 아니면 false를 출력하세요.

-> score의 정확한 값이 명시되어있지 않아서 무작위로 90과 102를 대입해 출력해봤다. 90으로 초기화했을 때엔 true, 

102로 초기화했을 때엔 false 값이 출력됐다.

번외로 조건문을 80보다 크거나 100보다 작다 라고 바꾸어 && 연산자를 ||로 바꾸니 실행결과가 true로 바뀌었다.

 

 

opinion

아직 코드를 입력하고 결과를 출력할 때에 해설에 있는 과정과 같지 않으면 실행결과가 같더라도 틀린 것인가 하는 

의문이 계속 남는다. 하지만 나는 해설과는 달라도 배웠던 것을 복기해 해설과는 다른 과정으로 정답을 얻었을 때 기분이 좋은 것같다.

내 과정과 내 결과가 온전하게 신뢰될 때까지 연습을 더 많이 해야겠다고 생각했다.