연산자란?
연산자는 프로그램에서 데이터를 처리하기 위해 사용하는 기호입니다.
예를 들어, 덧셈을 할 때 사용하는 '+' 기호가 연산자입니다.
자바에는 다양한 연산자가 있으며, 기본적으로 다음과 같이 분류됩니다.
주요 연산자 종류
종류 | 설명 |
산술 연산자 | +, -, *, /, % (덧셈, 뺄셈, 곱셈, 나눗셈, 나머지) 예: int result = 5 + 3; // result는 8 |
비교 연산자 | ==, !=, <, >, <=, >= 예: boolean isEqual = (5 == 5); // isEqual은 true |
논리 연산자 | && (AND), || (OR), ! (NOT) 예: boolean result = (true && false); // result는 false |
대입 연산자 | =, +=, -=, *=, /= 예: int x = 5; x += 3; // x는 8 |
증감 연산자 | ++, -- 예: int count = 0; count++; // count는 1 |
연산자 우선순위
수학에서처럼 자바에도 연산자 우선순위가 있습니다. 괄호 ()를 사용하면 우선순위를 변경할 수 있습니다.
주의사항
0으로 나누기는 오류를 발생시킵니다.
정수 나눗셈의 결과는 정수입니다. (예: 5 / 2 = 2)
1️⃣ 산술 연산자 (Arithmetic Operators)
숫자 연산을 수행하는 기본적인 연산자입니다.
기호 | 설명 |
+ (덧셈) | 두 피연산자를 더합니다. |
- (뺄셈) | 첫 번째 피연산자에서 두 번째 피연산자를 뺍니다. |
* (곱셈) | 두 피연산자를 곱합니다. |
/ (나눗셈) | 첫 번째 피연산자를 두 번째 피연산자로 나눕니다. |
% (나머지) | 첫 번째 피연산자를 두 번째 피연산자로 나눈 후의 나머지를 반환합니다. |
산술 연산자 사용 시 주의할 점
정수 나눗셈에서는 결과가 정수로 반환되며, 소수점 이하는 버려집니다1.
0으로 나누기를 시도하면 오류가 발생합니다.
연산자 우선순위는 일반적인 수학 규칙을 따릅니다 (곱셈과 나눗셈이 덧셈과 뺄셈보다 우선)
예제
int a = 5;
int b = 2;
System.out.println("a + b = " + (a + b)); // 출력: a + b = 7
System.out.println("a - b = " + (a - b)); // 출력: a - b = 3
System.out.println("a * b = " + (a * b)); // 출력: a * b = 10
System.out.println("a / b = " + (a / b)); // 출력: a / b = 2
System.out.println("a % b = " + (a % b)); // 출력: a % b = 1
산술 연산자는 boolean 타입을 제외한 모든 기본 타입에 사용 가능합니다
2️⃣ 비교 연산자 (Comparison Operators)
두 값을 비교하여 **참(true) 또는 거짓(false)**을 반환합니다.
부등호 | 설명 | 예시 | 결과 |
> | 왼쪽 값이 오른쪽 값보다 크다 | 10 > 5 | true |
< | 왼쪽 값이 오른쪽 값보다 작다 | 10 < 5 | false |
>= | 왼쪽 값이 오른쪽 값보다 크거나 같다 | 10 >= 10 | true |
<= | 왼쪽 값이 오른쪽 값보다 작거나 같다 | 5 <= 10 | true |
! = | 두 값이 같지 않다 | 10 != 5 | true |
= = | 두 값이 같다 | 5 == 5 | true |
자바에서 부등호는 두 값을 비교하는 데 사용되는 연산자로, 비교 연산자의 일부입니다.
부등호의 종류와 의미는 다음과 같습니다
특징
결과값 : 부등호 연산자는 항상 논리값(true 또는 false)을 반환합니다.
사용 범위 : 숫자, 문자, 변수 등 비교 가능한 모든 데이터 타입에 사용할 수 있습니다.
주의사항
등가 비교(==)와 대입 연산자(=)를 혼동하지 않아야 합니다.
문자열 비교 시에는 .equals() 메서드를 사용하는 것이 일반적입니다.
3️⃣ 논리 연산자 (Logical Operators)
논리값(true 또는 false)을 조합하여 연산을 수행합니다.
AND (&&): 두 피연산자가 모두 true일 때만 true를 반환합니다. | 예: (a > 5) && (a < 10) |
OR (||): 두 피연산자 중 하나라도 true이면 true를 반환합니다. | 예: (a < 0) || (a > 100) |
NOT (!): 피연산자의 논리값을 반대로 바꿉니다. | 예: !(a == 0) |
XOR (^): 두 피연산자의 값이 서로 다를 때 true를 반환합니다. | 예: (a > 0) ^ (b > 0) |
논리연산자 표
A | B | A and B | A or B | Not A |
A | B | A && B | A || B | ! A |
true (참) | true (참) | true (참) | true (참) | false(거짓) |
true (참) | false(거짓) | false(거짓) | true (참) | false(거짓) |
false(거짓) | true (참) | false(거짓) | true (참) | true(참) |
false(거짓) | false(거짓) | false(거짓) | false(거짓) | true(참) |
예제 코드
public class ComparisonExample {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 부등식 연산
//
// 통상적으로 = 표시로 생각 할 수 있겠지만 = 표시는 저장이기때문에 사용이 아니다.
// 부등호 사용 예제
System.out.println(a > b); // true (a 는 20보다 크냐?)
System.out.println(a < b); // false (a는 20보다 작냐?)
System.out.println(a >= b); // true (a는 10보다 크거냐 같냐?)
System.out.println(a <= b); // false
System.out.println(a != b); // true (a는 10과 같나? a랑 10이랑 다르냐?)
System.out.println(a == b); // false (a와 b는 같습니까?)
System.out.println(a>5 & a<20); // (a는 5보다 크고 20보다 작냐?)
// 문자 비교 (ASCII 값 기준)
char x = 'A'; // ASCII: 65
char y = 'B'; // ASCII: 66
System.out.println(x < y); // true (65 < 66)
int score= 50;
점수가 80점 이상이면 A 학점 이라고 출력 하고
그렇지 않으면 B 학점 이라고 출력한다.
if (score >=80){ // **라면 → 조건
System.out.println("A학점"); // ~ 해라 → 액션
System.out.println("훌륭합니다");
} else //← 그렇지 않으면
{System.out.println("B학점");
System.out.println("노력하세요"); // ← 런걸 로직 이라고 한다
// 이런 구조를 "조건문"이라고 한다.
/ 컴퓨터에게 일 시킬 때 사용한다.
}
}
4️⃣ 대입 연산자 (Assignment Operators)
대입 연산자는 변수에 값을 할당하는 데 사용되는 자바의 기본적인 연산자입니다.
기본 대입 연산자
'=' 기호를 사용합니다.
예: int x = 10;
복합 대입 연산자
대입 연산자와 다른 연산자를 결합한 형태입니다.
주요 복합 대입 연산자
연산자 | 설명 | 예제 |
= | 변수에 값을 대입 | int a = 10; |
+= | 덧셈 후 대입 | a += 5; // a = a + 5; |
-= | 뺄셈 후 대입 | a -= 2; // a = a - 2; |
*= | 곱셈 후 대입 | a *= 3; // a = a * 3; |
/= | 나눗셈 후 대입 | a /= 2; // a = a / 2; |
%= | 나머지 후 대입 | a %= 3; // a = a % 3; |
주의사항
복합 대입 연산자에서 연산자의 순서가 중요합니다.
예 : a =- 3은 a에 -3을 대입하는 것이며, a -= 3과는 다릅니다
증감 연산자
증감 연산자는 변수의 값을 1만큼 증가시키거나 감소시키는 자바의 연산자입니다. 주요 특징은 다음과 같습니다
사용 방법
전위 연산자: ++i 또는 --i
후위 연산자: i++ 또는 i--
전위와 후위 연산자의 차이:
전위 연산자: 변수의 값을 먼저 증가/감소시킨 후 연산에 사용합니다.
후위 연산자: 연산에 먼저 사용한 후 변수의 값을 증가/감소시킵니다.
예시
int i = 5;
System.out.println(++i); // 출력: 6
System.out.println(i++); // 출력: 6 (i는 7이 됨)
System.out.println(i); // 출력: 7
주의사항
증감 연산자는 변수에만 사용할 수 있습니다.
다른 연산과 함께 사용할 때는 전위와 후위의 차이에 주의해야 합니다.
🛠️ 제어문(Control Statements)
제어문은 프로그램의 흐름을 제어하는 구문으로, 조건을 검사하거나 특정 조건에서 반복을 수행하는 역할을 합니다.
1️⃣ 조건문 (Conditional Statements)
if문과 switch문을 사용하여 조건에 따라 실행 흐름을 조절할 수 있습니다.
✅ if문 사용 예제
int num = 10; // num이라는 변수는 정수형이고, 값은 10이다.
if (num > 0) { // 만약 num이 0보다 크다면
System.out.println("양수입니다."); // "양수입니다."를 출력한다.
} else { // 그렇지 않다면
System.out.println("0 또는 음수입니다."); // "0 또는 음수입니다."를 출력한다.
}
✅ switch문 사용 예제
int day = 3; // day 변수는 정수형이며, 값은 3이다.
switch (day) { // day의 값을 확인하여 실행할 코드 결정
case 1:
System.out.println("월요일"); // day가 1이면 "월요일" 출력
break;
case 2:
System.out.println("화요일"); // day가 2이면 "화요일" 출력
break;
default:
System.out.println("기타 요일"); // 위의 경우가 아닐 경우 "기타 요일" 출력
}
2️⃣ 반복문 (Loop Statements)
반복문을 사용하면 특정 코드 블록을 여러 번 실행할 수 있습니다.
✅ for문 사용 예제
for (int i = 0; i < 5; i++) { // i를 0부터 시작해서 5보다 작을 때까지 1씩 증가시킨다.
System.out.println("반복 횟수: " + i); // 현재 i 값을 출력한다.
}
✅ while문 사용 예제
int count = 0; // count 변수를 0으로 초기화한다.
while (count < 5) { // count가 5보다 작을 동안 반복 실행
System.out.println("현재 값: " + count); // 현재 count 값을 출력한다.
count++; // count 값을 1 증가시킨다.
}
✅ do-while문 사용 예제
int n = 0; // n 변수를 0으로 초기화한다.
do {
System.out.println("현재 값: " + n); // 현재 n 값을 출력한다.
n++; // n 값을 1 증가시킨다.
} while (n < 5); // n이 5보다 작을 동안 반복 실행한다.
✅ while문과 do-while문의 차이:
- while문은 조건을 먼저 검사하고 실행.
- do-while문은 최소 1회 실행 후 조건 검사.
🎯 정리 및 다음 강의 예고
✅ 이번 강의에서 배운 내용
- 연산자의 종류와 활용법
- 조건문(if문, switch문)
- 반복문(for, while, do-while)
📌 다음 강의: [Java 5강] 메서드와 클래스 개념 (메서드 정의, 호출, 클래스와 객체 개념)
'☕Java > ☕입문편' 카테고리의 다른 글
[Java 5강] Java 조건문 마스터하기: if, else, switch 완벽 가이드 (0) | 2024.12.08 |
---|---|
[Java 3강] 변수와 데이터 타입 (0) | 2024.12.06 |
[Java 1강] 인텔리J 설치 및 기본 설정 (0) | 2024.12.06 |
[Java 2강 - 특별편] Java 문법 시작하기 (0) | 2024.12.06 |
[Java 0강] 자바(Java)란? 개념, 특징, 활용법 완벽 정리 (0) | 2024.12.05 |