Java/강의

[📙 Java 문법 종합반] 1-6. 연산자 - 계산의 시작

가지코딩 2025. 4. 15. 11:47

📙 목차

  1. 산술 연산자
  2. 대입 연산자
  3. 증감 연산자
  4. 비교 연산자
  5. 논리 연산자
  6. 연산자 우선순위
  7. 문자열 비교
  8. 실습 과제

🧡 학습 목표

  • 연산자가 무엇인지 학습한다.
  • 연산자의 우선순위를 학습한다.
  • 문자열을 비교하는 방법을 학습한다.

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);
    }
}