☕Java/☕입문편

[Java 4강] 연산자와 제어문

itstory(Booho) 2024. 12. 6. 23:56
728x90

연산자란?

연산자는 프로그램에서 데이터를 처리하기 위해 사용하는 기호입니다.
예를 들어, 덧셈을 할 때 사용하는 '+' 기호가 연산자입니다.
자바에는 다양한 연산자가 있으며, 기본적으로 다음과 같이 분류됩니다.


주요 연산자 종류

종류 설명
산술 연산자  +, -, *, /, % (덧셈, 뺄셈, 곱셈, 나눗셈, 나머지)   예: 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회 실행 후 조건 검사.

🎯 정리 및 다음 강의 예고

✅ 이번 강의에서 배운 내용

  1. 연산자의 종류와 활용법
  2. 조건문(if문, switch문)
  3. 반복문(for, while, do-while)

📌 다음 강의: [Java 5강] 메서드와 클래스 개념 (메서드 정의, 호출, 클래스와 객체 개념)

728x90
반응형