2025-08-19 변수 & IF

Ckd gus·2026년 2월 2일

Java 변수, 연산자, 조건문 기초 정리

변수는 값을 저장하는 메모리 공간에 붙이는 이름, 즉 식별자이다.
리터럴은 변수에 저장되는 값 그 자체를 의미한다.

자바에서 변수 선언 형태는 다음과 같다.

타입 변수명 = 리터럴

예시 코드:

int num = 100;

변수의 종류

변수는 크게 클래스 변수지역 변수로 나뉜다.

  • 클래스 변수

    • 초기화를 하지 않아도 기본값 0으로 자동 초기화됨
  • 지역 변수

    • 반드시 초기화를 해줘야 함
    • 초기화하지 않으면 컴파일 에러 발생

상수 (final)

상수는 변하지 않는 값을 의미한다.
변수는 재할당이 가능하지만, 상수는 한 번 선언하면 값 변경이 불가능하다.

선언 방법은 final 키워드를 사용한다.

final int NUM = 50;

상수 네이밍 규칙:

  • 전부 대문자
  • 두 단어 이상일 경우 언더바(_) 사용

네이밍 컨벤션

네이밍 컨벤션은 개발자 간의 약속이다.

  • 변수명: 소문자로 시작, 이후 단어는 대문자 (camelCase)
  • 클래스명: 대문자로 시작 (PascalCase)

자바의 타입

자바는 강형 언어로, 변수의 타입이 명확히 정해져 있다.

기본 타입 (Primitive Type)

  • int, byte, short, char
  • long, float, double
  • boolean

레퍼런스 타입 (Reference Type)

  • 객체의 주소값을 저장

연산자 종류

자바의 연산자는 다음과 같이 나뉜다.

  • 산술 연산자
  • 비교 연산자
  • 논리 연산자
  • 대입 연산자
  • 증감 연산자

산술 연산자

사칙연산과 나머지 연산 %를 포함한다.

int a = 10, b = 3;
System.out.println(a + b);  // 13
System.out.println(a - b);  // 7
System.out.println(a * b);  // 30
System.out.println(a / b);  // 3
System.out.println(a % b);  // 1

비교 연산자

값을 비교하여 true 또는 false를 반환한다.

int x = 5, y = 10;
System.out.println(x == y);  // false
System.out.println(x != y);  // true
System.out.println(x < y);   // true
System.out.println(x > y);   // false
System.out.println(x <= y);  // true
System.out.println(x >= y);  // false

논리 연산자

boolean 값을 비교한다.

boolean a = true, b = false;

System.out.println(a && b); // false
System.out.println(a || b); // true
System.out.println(!a);     // false
System.out.println(a ^ b);  // true
System.out.println(a ^ true); // false

단락 평가 (Short-circuit)

int c = 10, d = 8, e = 10, f = 3;

System.out.println((c > d++) && (e > f++));
System.out.println(d); // 9
System.out.println(f); // 4

System.out.println((c < d++) && (e > f++));
System.out.println(d); // 10
System.out.println(f); // 4

AND(&&)는 앞 조건이 false면 뒤 조건을 평가하지 않는다.
OR(||)는 앞 조건이 true면 뒤 조건을 평가하지 않는다.


대입 연산자

int num = 10;

num += 5;
num -= 5;
num *= 2;
num /= 2;
num %= 3;

증감 연산자

int i = 5;

System.out.println(++i); // 6 (전위)
System.out.println(i++); // 6 (후위)
System.out.println(i);   // 7

타입 변환

자동 타입 변환

byte b = 10;
int i = b;
long l = i;
float f = l;
double d = f;

강제 타입 변환 (캐스팅)

double d = 3.14;
int i = (int) d; // 3

산술 승격

byte a = 10;
byte b = 20;

// byte result = a + b; // 컴파일 에러
int result = a + b;

JVM은 int를 기본 연산 단위로 사용한다.


printf 포맷 출력

String name = "홍길동";
int age = 22;
float pi = 3.141592f;

System.out.printf("이름: %s, 나이: %d\n", name, age);
System.out.printf("파이: %.2f\n", pi);
System.out.printf("파이: %.4f\n", pi);

조건문

if 문

int score = 100;

if (score > 100) {
    System.out.printf("%d 점으로 A+입니다.", score);
}

else if 문

if (score > 90) {
    System.out.println("A");
} else if (score > 80) {
    System.out.println("B");
} else {
    System.out.println("불합격");
}

중첩 if 문

char gender = 'M';

if (score >= 80) {
    if (gender == 'M') {
        System.out.println("합격: 남학생");
    } else {
        System.out.println("합격: 여학생");
    }
} else {
    System.out.println("불합격");
}

switch 문

int month = 7;
String season;

switch (month) {
    case 12:
    case 1:
    case 2:
        season = "겨울";
        break;
    case 3:
    case 4:
    case 5:
        season = "봄";
        break;
    case 6:
    case 7:
    case 8:
        season = "여름";
        break;
    case 9:
    case 10:
    case 11:
        season = "가을";
        break;
    default:
        season = "잘못된 월";
}

break를 빼먹으면 아래 case까지 전부 실행되므로 주의해야 한다.
long, float, double, boolean 타입은 사용할 수 없다.


삼항 연산자

int a = 30;
String result = (a > 40) ? "초과" : "미만";
System.out.println(result);

중첩도 가능하지만 가독성이 떨어질 수 있다.


이스케이프 시퀀스

System.out.println("첫번째줄\n두번째줄");
System.out.println("탭\t탭");
System.out.println("\"안녕하세요\"");
System.out.println("역슬래쉬\\");
  • \n 줄바꿈
  • \t
  • \" 큰따옴표
  • \\ 백슬래시

문자열과 숫자 변환

String str = "1234";

int num1 = Integer.parseInt(str);
int num2 = Integer.valueOf(str);
  • parseInt → 기본형 반환
  • valueOf → 참조형 반환

느낀 점

자바를 본격적으로 배우기 시작했는데,
선행 학습 덕분에 아직까지는 크게 어렵지 않았다.

다만 자바 메모리 구조기본 구조
다시 한 번 복습이 필요하다고 느꼈다.

profile
백엔드 공부중입니다.

0개의 댓글