[지금 무료] 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음 강의 | 김영한 - 인프런
김영한 | 프로그래밍에 처음 입문하는 분들을 위한 자바 강의입니다. 코드를 따라하면서 손쉽게 자바를 배울 수 있습니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 자바 입문[사
www.inflearn.com
연산자 시작
`+`, `-`, `*`, `/`와 같이 계산을 수행하는 기호를 연산자라고 한다.
연산자 종류
- 산술 연산자: `+`, `-`, `*`, `/`, `%`
- 증감(증가 및 감소) 연산자: `++`, `--`
- 비교 연산자: `==`, `!=`, `>`, `<`, `>=`, `<=`
- 논리 연산자: `&&`(AND), `||`(OR), `!`(NOT)
- 대입 연산자: `=`, `+=`, `-=`, `*=`, `/=`, `%=`
- 삼항 연산자: `?`, `:`
연산자와 피연산자
3 + 4
a + b
- 연산자(operator): 연산 기호 - 예) `+`, `-`
- 피연산자(operand): 연산 대상 - 예) `3`, `4`, `a`, `b`
산술 연산자
산술 연산자는 주로 숫자를 계산하는 데 사용된다. 우리가 이미 잘 알고 있는 수학 연산을 수행한다.
- `+` (더하기)
- `-` (빼기)
- `*` (곱하기)
- `/` (나누기)
- `%` (나머지)
package operator;
public class Operator1 {
public static void main(String[] args) {
// 변수 초기화
int a = 5;
int b = 2;
// 덧셈
int sum = a + b;
System.out.println("a + b = " + sum); // 출력: a + b = 7
// 뺄셈
int diff = a - b;
System.out.println("a - b = " + diff); // 출력: a - b = 3
// 곱셈
int multi = a * b;
System.out.println("a * b = " + multi); // 출력: a * b = 10
// 나눗셈
int div = a / b;
System.out.println("a / b = " + div); // 출력: a / b = 2
// 나머지
int mod = a % b;
System.out.println("a % b = " + mod); // 출력: a % b = 1
}
}
- `5 / 2`의 결과는 `2.5`가 되어야 하지만 결과는 소수점이 제거된 `2`가 나왔다.
- 자바에서 같은 `int`형끼리 계산하면 계산 결과도 같은 `int`형을 사용한다. `int`형은 정수이기 때문에 소수점 이하를 포함할 수 없다.
- 이 부분에 대한 자세한 내용과 해결 방안은 뒤의 형변환에서 다룬다.
- 나머지 연산자(`%`)
- 이름 그대로 나머지를 구하는 연산자이다. `5 / 2`는 몫이 2 나머지가 1이다. 따라서 나머지 연산자 `5 % 2`의 결과는 `1`이 된다.
주의! 0으로 나누기
`10 / 0`과 같이 숫자는 0으로 나눌 수 없다. 이 경우 프로그램에 오류가 발생한다.
Exception in thread "main" java.lang.ArithmeticException: / by zero
- 예외가 발생하면 해당 시점 이후의 결과가 출력되지 않고 프로그램이 종료된다.
문자열 더하기
자바는 특별하게 문자열에도 `+` 연산자를 사용할 수 있다. 문자열에 `+` 연산자를 사용하면 두 문자를 연결할 수 있다.
문자열과 문자열 더하기
String result1 = "hello " + "world"
- `"hello "` 문자열과 `"world"` 문자열을 더해서 `"hello world"` 문자열을 만든다.
문자열과 숫자 더하기
- 자바에서 문자열과 숫자를 더하면 숫자를 문자열로 변경한 다음에 서로 더한다.
"a + b = " + 10
- `"a + b = 10"` 문자열을 만든다.
연산자 우선순위
복잡한 경우에는 괄호를 명시적으로 사용하는 것이 더 명확하고 이해하기 쉽다.
코드를 몇자 줄여서 모호하거나 복잡해 지는 것보다는 코드가 더 많더라도 명확하고 단순한 것이 더 유지보수 하기 좋다.
- 괄호 ()
- 단항 연산자 (예: `++`, `--`, `!`, `~`, `new`, `(type)`)
- 산술 연산자 (`*`, `/`, `%` 우선, 그 다음에 `+`, `-`)
- Shift 연산자 (`<<`, `>>`, `>>>`)
- 비교 연산자 (`<`, `<=`, `>`, `>=`, `instanceOf`)
- 등식 연산자 (`==`, `!=`)
- 비트 연산자 (`&`, `^`, `|`)
- 논리 연산자 (`&&`, `||`)
- 삼항 연산자 (`?`, `:`)
- 대입 연산자 (`=`, `+=`, `-=`, `*=`, `/=`, `%=` 등등)
연산자 우선순위는 상식선에서 생각하고, 애매하면 괄호를 사용하자
증감 연산자
증가 및 감소 연산자를 줄여서 증감 연산자라 한다.
`++`와 `--`로 표현되며, 이들은 변수의 값을 1만큼 증가시키거나 감소시킨다.
프로그래밍에서는 값을 1씩 증가하거나 1씩 감소할 때가 아주 많기 때문에 이런 편의 기능을 제공한다.
전위, 후위 증감 연산자
증감 연산자는 피연산자 앞에 두거나 뒤에 둘 수 있으며, 연산자의 위치에 따라 연산이 수행되는 시점이 달라진다.
전위 증감 연산자
- `++a`: 증감 연산자를 피연산자(변수) 앞에 둘 수 있다. 이것을 앞에 있다고 해서 전위(Prefix) 증감 연산자라 한다.
- 증감 연산이 먼저 수행된 후 나머지 연산이 수행된다.
a = 1, b = 0
b = ++a //전위 증감 연산자
a = a + 1 //a의 증감 연산이 먼저 진행, a = 2
b = a //이후에 a를 대입 b = 2
결과: a = 2, b = 2
후위 증감 연산자
- `a++`: 증감 연산자를 피연산자(변수) 뒤에 둘 수 있다. 이것을 뒤에 있다고 해서 후위(Postfix) 증감 연산자라 한다.
- 다른 연산이 먼저 수행된 후 증감 연산이 수행된다.
a = 1, b = 0
b = a++ //후위 증감 연산자
b = a; //a의 값을 먼저 b에 대입 b = 1
a = a + 1; //이후에 a의 값을 증가 a = 2
결과: a = 2, b = 1 ```
증감 연산자를 단독으로 사용하는 경우에는 다른 연산이 없기 때문에 본인의 값만 증가한다. 따라서 전위이든 후위이든 둘 다 결과가 같다.
비교 연산자
비교 연산자는 두 값을 비교하는 데 사용된다. 비교 연산자는 주로 조건문과 함께 사용한다.
- `==`: 동등성 (equal to)
- `!=`: 불일치 (not equal to)
- `>`: 크다 (greater than)
- `<`: 작다 (less than)
- `>=`: 크거나 같다 (greater than or equal to)
- `<=`: 작거나 같다 (less than or equal to)
비교 연산자를 사용하면 참(`true`) 또는 거짓(`false`)이라는 결과가 나온다. 참 거짓은 `boolean`형을 사용한다.
문자열 비교
문자열이 같은지 비교할 때는 `==`이 아니라 `.equals()` 메서드를 사용해야 한다.
`==`를 사용하면 성공할 때도 있지만 실패할 때도 있다. 지금은 이 부분을 이해하기 어려우므로 단순히 문자열의 비교는 `.equals()` 메서드를 사용해야 한다 정도로 알고 있으면 된다.
boolean result1 = "hello".equals("hello"); // 결과 : true
논리 연산자
논리 연산자는 `boolean`형인 `true`, `false`를 비교하는데 사용한다.
- `&&`(그리고) : 두 피연산자가 모두 참이면 참을 반환, 둘 중 하나라도 거짓이면 거짓을 반환
- `||`(또는) : 두 피연산자 중 하나라도 참이면 참을 반환, 둘다 거짓이면 거짓을 반환
- `!`(부정) : 피연산자의 논리적 부정을 반환. 즉 참이면 거짓을, 거짓이면 참을 반환
대입 연산자
대입 연산자
대입 연산자(`=`)는 값을 변수에 할당하는 연산자이다. 이 연산자를 사용하면 변수에 값을 할당할 수 있다. 예를 들어 `int a = 1`는 `a`라는 변수에 `1`이라는 값을 할당한다.
축약(복합) 대입 연산자
산술 연산자와 대입 연산자를 한번에 축약해서 사용할 수 있는데, 이것을 축약(복합) 대입 연산자라 한다.
연산자 종류: `+=`, `-=`, `*=`, `/=`, `%=`
이 연산자는 연산과 대입을 한 번에 축약해서 처리한다. 다음 왼쪽과 오른쪽의 결과는 같다.
i = i + 3 -> i += 3
i = i * 4 -> i *= 4
'Java' 카테고리의 다른 글
[Java/김영한] 반복문 (0) | 2024.08.12 |
---|---|
[Java/김영한] 조건문 (0) | 2024.08.12 |
[Java/김영한] 변수 (0) | 2024.08.11 |
[Java/김영한] Hello World (0) | 2024.08.11 |
Record (0) | 2024.07.03 |