📙 목차
🧡 학습 목표
- 연산자가 무엇인지 학습한다.
- 연산자의 우선순위를 학습한다.
- 문자열을 비교하는 방법을 학습한다.
1. 산술 연산자
기본적인 사칙연산
int a = 10;
int b = 3;
// 기본 사칙연산
int sum = a + b;
System.out.println("sum = " + sum);
int sub = a - b;
System.out.println("sub = " + sub);
int mul = a * b;
System.out.println("mul = " + mul);
나눗셈
- 정수끼리 나누게 되면 소수점이 버려진다.
- 소수점을 유지하려면 소수점과 연산을 시켜야 한다.
int a = 10;
int b = 3;
int div = a / b;
System.out.println("div = " + div); // ⚠️ 3 (소수점 버려짐)
double div2 = a / 3.0;
System.out.println("div2 = " + div2); // ✅ 3.333... (소수점 유지)
모듈러 연산자 (나머니 연산)
int mod = 10 % 3;
System.out.println("mod = " + mod); // 나머지: 1
int mod2 = 15 % 4;
System.out.println("mod2 = " + mod2); // 나머지: 3
int mod3 = 20 % 7;
System.out.println("mod3 = " + mod3); // 나머지: 6
* 모듈러 연산 활용
- 시간 연산
// 현재 시간이 10시, 5시간 후면 몇 시?
(10 + 5) % 12 = 3
- 짝수/홀수 판별
6 % 2 = 0; // 짝수
7 % 2 = 1; // 홀수
2. 대입 연산자
대입 연산자(=)
- 변수에 값을 할당할 때 사용
- 연산자 중 제일 마지막에 수행된다.
int num = 5;
System.out.println("변수 num의 값: " + num); // 5
복합대입 연산자 (+=, -=, *=, /=, %=)
- 누적 값을 구할 때 자주 활용된다.
- num += 3; 은 num = num + 3; 과 같다.
int num = 5;
num += 3; // num = num + 3;
System.out.println("+= 결과: " + num); // 8
num -= 2; // num = num - 2;
System.out.println("-= 결과: " + num); // 6
num *= 2; // num = num * 2;
System.out.println("*= 결과: " + num); // 12
num /= 3; // num = num / 3;
System.out.println("/= 결과: " + num); // 4
num %= 3; // num = num % 3;
System.out.println("%= 결과: " + num); // 1
3. 증감 연산자
- 증감 연산자는 변수를 1증가(++) 또는 1감소(--) 시킬 때 사용된다.
- 전위 연산(++i)과 후위 연산(i++)이 있다.
- 전위 연산(++i): 연산 후 사용된다.
- 후위 연산(i++): 사용 후 연산된다.
int num = 1;
System.out.println("num: " + num); // 1
num++; // 값을 1 증가 시킴 num = num + 1;
System.out.println("num++ 실행 후: " + num); // 2
num--; // 값을 1감소시킴 num = num - 1;
System.out.println("num-- 실행 후: " + num); // 1
// 전위 연산
int a = 5;
System.out.println("++a: " + (++a)); // 6 (먼저 증가 후 출력)
System.out.println("현재 a 값: " + a); // 6
//후위 연산
int b = 5;
System.out.println("b++: " + (b++)); // 5 (출력 후 증가)
System.out.println("현재 b 값: " + b); // 6
4. 비교 연산자
- 두 값이 같은지 다른지, 크거나 작은지 비교할 때 사용된다.
같음 연산자(==)
두 값이 같으면 true, 다르면 false를 반환한다.
System.out.println("10 == 10: " + (10 == 10)); // true
다름 연산자(!=)
두 값이 다르면 true, 같으면 false를 반환한다.
System.out.println("10 != 5: " + (10 != 5)); // true
크기 비교 연산자(>, < ,<=,>=)
양쪽의 값을 비교했을때 논리에 맞으면 true를 반환, 논리에 어긋나면 false를 반환한다.
System.out.println("10 < 5: " + (10 < 5)); // false
System.out.println("10 >= 10: " + (10 >= 10)); // true
System.out.println("10 <= 5: " + (10 <= 5)); // false
비교 연산자 정리
연산자 | 설명 | 예제 | 결과 |
== | 두 값이 같으면 true | 10 == 10 | true |
!= | 두 값이 다르면 true | 10 != 5 | true |
> | 왼쪽 값이 크면 true | 10 > 5 | true |
< | 왼쪽 값이 작으면 true | 10 < 5 | false |
>= | 왼쪽 값이 크거나 같으면 true | 10 >= 10 | true |
<= | 왼쪽 값이 작거나 같으면 true | 10 <= 5 | false |
5. 논리 연산자
AND 연산자(&&)
두 조건이 모두 참일 때 true 를 반환
System.out.println("true && true: " + (true && true)); // true
System.out.println("true && false: " + (true && false)); // false
System.out.println("false && false: " + (false && false)); // false
int age = 20;
boolean isStudent = true;
System.out.println(age > 18 && isStudent); // true
OR 연산자(||)
둘 중 하나라도 참이면 true 를 반환
System.out.println("true || false: " + (true || false)); // true
System.out.println("false || false: " + (false || false)); // false
System.out.println("true || true: " + (true || true)); // true
int age = 20;
boolean isStudent = true;
System.out.println(age > 18 || isStudent); // true
NOT 연산자(!)
true 일때 false로, false 일때 true 로 변경
System.out.println("!true: " + (!true)); // false
System.out.println("!false: " + (!false)); // true
논리 연산자 정리
연산자 | 설명 | 예제 | 결과 |
&& (AND) | 두 조건이 모두 참일 때만 true | true && true | true |
true && false | false | ||
false && true | false | ||
|| (OR) | 하나라도 참이면 true | true || true | true |
true || false | true | ||
false || true | true | ||
false || fasle | false | ||
! (NOT) | 참이면 거짓, 거짓이면 참으로 변경 | !true | false |
!false | true |
6. 연산자 우선순위
* 우선순위가 헷갈린다면 괄호를 적극적으로 사용한다.
2 + 3 * 4; // 헷갈릴 수 있음
2 + (3 * 4) // 명확함
산술 연산자 우선순위
기본적인 수학 사칙연산 우선순위 적용
System.out.println(10 - 3 * 2);
// 실행 순서: 10 - (3 * 2)
// → 10 - 6
// → 4
기본 연산자 우선순위(산술 → 비교 → 논리 → 대입)
boolean flag = 10 + 5 > 12 && true;
System.out.println(flag);
// 실행 순서: (10 + 5) > 12 && true : 산술
// → 15 > 12 && true : 비교
// → true && true : 논리
// → flag = true 대입
비교 연산자와 산술 연산자의 우선순위
System.out.println(10 - 3 > 5 + 1);
// 실행 순서: (10 - 3) > (5 + 1) : 산술
// → 7 > 6 : 비교
// → true
논리 연산자 우선순위( ! → && → || )
! 가 제일 먼저 연산 된다. 두 번째로 && , 마지막으로 ||
boolean result = true || false && !false;
// 실행 순서: true || (false && true)
// → true || false
// → true
7. 문자열 비교
문자열 비교는 .equals()를 사용한다.
String text1 = "Hello";
String text2 = "Hello";
boolean isEqual = text1.equals(text2);
System.out.println("text1과 text2가 같은가? " + isEqual);
//출력결과:
text1과 text2가 같은가? true
8. 실습 과제
(1) 산술 연산자 문제
두 개의 정수 a 와 b 가 주어졌을 때 두 수의 합, 차, 곱, 나누기 그리고 나머지(%모듈러) 연산 결과를 변수에 저장한 후 출력하는 프로그램을 작성하세요.
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 3;
int sum = a + b;
int dif = a - b;
int mul = a * b;
int div = a / b;
int mod = a % b;
System.out.println("덧셈 결과: " + sum);
System.out.println("뺄셈 결과: " + dif);
System.out.println("곱셈 결과: " + mul);
System.out.println("나눗셈 결과: " + div);
System.out.println("나머지 결과: " + mod);
}
}
(2) 비교 연산자 문제
두 개의 정수 x와 y가 주어졌을 떄
- x가 y보다 큰지(>)
- x가 y보다 작은지(<)
- x와 y가 같은지 (==)
- x와 y가 다른지(!=)
각각의 결과를 변수에 저장하고 출력하는 프로그램을 작성하세요.
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
boolean isSmall = x > y;
boolean isBig = x < y;
boolean isEqual = x == y;
boolean isNotEqual = x != y;
System.out.println("x가 y보다 큰가? " + isSmall);
System.out.println("x가 y보다 작은가? " + isBig);
System.out.println("x와 y가 같은가? " + isEqual);
System.out.println("x와 y가 다른가? " + isNotEqual);
}
}
(3) 두 문자열이 같은지 비교할 수 있는 프로그램을 만들어 봅시다.
입력한 두 개의 문자열 str1과 str2 을 비교한 결과를 result 에 담아서 출력하세요.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("첫 번째 문자열을 입력하세요: ");
String str1 = in.nextLine();
System.out.print("두 번째 문자열을 입력하세요: ");
String str2 = in.nextLine();
boolean result = str1.equals(str2);
System.out.println("두 문자열이 같은가요? " + result);
}
}
'Java > 강의' 카테고리의 다른 글
[📙 Java 문법 종합반] 1-8. 반복문 - 자동화의 첫걸음 (0) | 2025.04.15 |
---|---|
[📙 Java 문법 종합반] 1-7. 조건문 - 프로그램의 선택지 (0) | 2025.04.15 |
[📙 Java 문법 종합반] 1-5. 입출력 - 프로그램과 사용자 간의 대화 (0) | 2025.04.14 |
[📙 Java 문법 종합반] 1-4. 변수 - 데이터의 저장 공간 (0) | 2025.04.14 |
[📙 Java 문법 종합반] 1-3. 자바 프로젝트 관리 (0) | 2025.04.14 |