[Java(2)]연산자, 입출력, 표현식·문장·블록 쉽게 이해하기

2026. 6. 17. 16:31·웹 개발/JAVA

안녕하세요~ 경제적 자유입니다.

오늘은 Java의 연산자, 기본 입출력, 표현식·문장·블록을 리뷰해보려고 합니다.

 

추가로 더 자세히 공부하고 싶다면 아래 JAVA 문서를 참고해보세요.

  • 참고 링크: Java Operators - Programiz
  • 참고 링크: Java Basic Input and Output - Programiz
  • 참고 링크: Java Expressions, Statements and Blocks - Programiz

1. Java 연산자란?

연산자란 값이나 변수에 특정 작업을 수행하는 기호입니다.

예를 들어 +는 더하기, -는 빼기, *는 곱하기, /는 나누기를 의미합니다.

int a = 10;
int b = 3;

System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);

위 코드에서 +, -, *, /, %가 모두 연산자입니다.

 

* JS에서 배운것이랑 동일하지만 나눗셈이 조금 다르다는 것 기억하기!

 


산술 연산자

산술 연산자는 숫자를 계산할 때 사용합니다.

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        System.out.println("더하기: " + (a + b));
        System.out.println("빼기: " + (a - b));
        System.out.println("곱하기: " + (a * b));
        System.out.println("나누기: " + (a / b));
        System.out.println("나머지: " + (a % b));
    }
}

 

실행 결과는 다음과 같습니다.

더하기: 13
빼기: 7
곱하기: 30
나누기: 3
나머지: 1

 

여기서 초보자가 특히 조심해야 할 부분은 /입니다.

Java에서 int / int를 하면 결과도 int가 됩니다.
즉, 소수점 아래는 버려집니다.

System.out.println(10 / 3); // 3
System.out.println(10.0 / 3); // 3.333333333333333

 

 


대입 연산자

대입 연산자는 변수에 값을 넣을 때 사용합니다.

int age = 20;

 

여기서 =는 “같다”라는 뜻이 아니라,
오른쪽 값을 왼쪽 변수에 넣는다는 뜻입니다.

int age;
age = 20;

 

age라는 변수에 20을 저장한 것입니다.

추가로 이런 형태도 사용할 수 있습니다.

int score = 10;

score += 5; // score = score + 5; 와 같다
System.out.println(score); // 15

 


관계 연산자

관계 연산자는 두 값을 비교할 때 사용합니다.
결과는 항상 true 또는 false입니다.

public class Main {
    public static void main(String[] args) {
        int age = 20;

        System.out.println(age > 19); //true
        System.out.println(age == 20); //true
        System.out.println(age != 20); //false
    }
}

 

실행 결과는 다음과 같습니다.

여기서 중요한 점은 =와 ==의 차이입니다.

int age = 20;

=는 값을 넣는 대입 연산자입니다.

age == 20

==는 두 값이 같은지 비교하는 관계 연산자입니다.

초보자 입장에서는 이 둘을 헷갈리기 쉽습니다.
Java에서 “같은지 비교”할 때는 ==를 사용해야 합니다.


논리 연산자

논리 연산자는 여러 조건을 함께 판단할 때 사용합니다.

public class Main {
    public static void main(String[] args) {
        int age = 20;
        boolean hasTicket = true;

        System.out.println(age >= 19 && hasTicket); //true
        System.out.println(age < 19 || hasTicket); //true
        System.out.println(!hasTicket); //false
    }
}

 

 

대표적인 논리 연산자는 다음과 같습니다.

  • && : 그리고
  • || : 또는
  • ! : 반대

코드로 이해하기

이번에는 "상구"라는 값을 메서드의 parameter로 전달해서 연산자와 함께 사용해보겠습니다.

public class Main {
    public static void main(String[] args) {
        introducePerson("상구", 20);
    }

    public static void introducePerson(String name, int age) {
        boolean isAdult = age >= 19;

        System.out.println("이름: " + name); // 이름: 상구
        System.out.println("나이: " + age); // 나이: 20
        System.out.println("성인인가요? " + isAdult); // 성인인가요? true
    }
}

 

 

여기서 "상구"는 name이라는 parameter로 전달됩니다.
그리고 age >= 19라는 관계 연산자를 통해 성인 여부를 판단합니다.


2. Java 기본 입출력이란?

입출력이란 프로그램이 사용자와 데이터를 주고받는 것입니다.

  • 출력: 프로그램이 화면에 결과를 보여주는 것
  • 입력: 사용자가 프로그램에 값을 전달하는 것

Java에서는 출력할 때 주로 System.out.println()을 사용하고,
입력받을 때는 Scanner 클래스를 많이 사용합니다.


출력: System.out.println()

가장 기본적인 출력 방법은 System.out.println()입니다.

public class Main {
    public static void main(String[] args) {
        System.out.println("안녕하세요 Java!"); // 안녕하세요 Java!
    }
}

 

println()은 출력한 뒤 줄바꿈을 해줍니다.


print(), println(), printf() 차이

Java에서 자주 사용하는 출력 메서드는 세 가지입니다.

print()

print()는 출력 후 줄바꿈을 하지 않습니다.

public class Main {
    public static void main(String[] args) {
        System.out.print("안녕");
        System.out.print("하세요");
    }
}

실행 결과는 다음과 같습니다.

안녕하세요

println()

println()은 출력 후 줄바꿈을 합니다.

public class Main {
    public static void main(String[] args) {
        System.out.println("안녕");
        System.out.println("하세요");
    }
}

 

실행 결과는 다음과 같습니다.

안녕
하세요

printf()

printf()는 형식을 지정해서 출력할 때 사용합니다.

public class Main {
    public static void main(String[] args) {
        String name = "상구";
        int age = 20;

        System.out.printf("이름은 %s이고, 나이는 %d살입니다.", name, age);
    }
}

 

실행 결과는 다음과 같습니다.

이름은 상구이고, 나이는 20살입니다.

 

여기서 %s는 문자열, %d는 정수를 넣는 자리입니다.


입력: Scanner

사용자에게 값을 입력받으려면 Scanner를 사용할 수 있습니다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("이름을 입력하세요: ");
        String name = input.next();

        System.out.println("안녕하세요, " + name + "님!");

        input.close();
    }
}

실행 예시는 다음과 같습니다.

이름을 입력하세요: 상구
안녕하세요, 상구님!

 

Scanner를 사용하려면 먼저 아래 코드를 작성해야 합니다. (근데 세팅으로 알아서 나오게 만들 수 있습니다.

import java.util.Scanner;

 

그리고 Scanner 객체를 만들어야 합니다.

Scanner input = new Scanner(System.in);

 

이 코드는 키보드로 입력받을 준비를 하는 코드라고 생각하면 됩니다.


Scanner에서 자주 사용하는 메서드

입력받는 값의 종류에 따라 사용하는 메서드가 다릅니다.

int age = input.nextInt();
double height = input.nextDouble();
String name = input.next();
  • nextInt() : 정수 입력
  • nextDouble() : 실수 입력
  • next() : 문자열 입력

초보자가 헷갈릴 수 있는 부분은 next()와 nextLine()입니다.

String word = input.next();
String sentence = input.nextLine();

 

next()는 공백 전까지 입력받습니다.

 

반면 nextLine()은 한 줄 전체를 입력받습니다.

 

예를 들어 사용자가 상구 Java 공부 중이라고 입력했을 때,

  • next()는 상구까지만 읽습니다.
  • nextLine()은 상구 Java 공부 중 전체를 읽습니다.

코드로 이해하기

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("이름을 입력하세요: ");
        String name = input.next();

        System.out.print("나이를 입력하세요: ");
        int age = input.nextInt();

        introducePerson(name, age);

        input.close();
    }

    public static void introducePerson(String name, int age) {
        System.out.println("이름: " + name);
        System.out.println("나이: " + age);
        System.out.println(name + "님, Java 공부를 응원합니다!");
    }
}

입력 예시는 다음과 같습니다.

이름을 입력하세요: 상구
나이를 입력하세요: 20

실행 결과는 다음과 같습니다.

이름: 상구
나이: 20
상구님, Java 공부를 응원합니다!

여기서 입력받은 "상구"는 introducePerson() 메서드의 name parameter로 전달됩니다.


3. 표현식이란?

표현식은 하나의 값으로 계산될 수 있는 코드 조각입니다.

예를 들어 아래 코드를 보겠습니다.

int result = 10 + 5;

여기서 10 + 5는 계산하면 15라는 값이 됩니다.
그래서 10 + 5는 표현식입니다.

age >= 19

이 코드도 표현식입니다.
계산 결과가 true 또는 false가 되기 때문입니다.


표현식은 왜 필요할까?

프로그램은 값을 계산하고 판단하는 과정의 연속입니다.

int totalPrice = 10000 + 3000;
boolean isAdult = age >= 19;
String message = "안녕하세요, " + name + "님";

위 코드에서 오른쪽 부분은 모두 표현식입니다.

  • 10000 + 3000
  • age >= 19
  • "안녕하세요, " + name + "님"

이 표현식들은 각각 하나의 값으로 계산됩니다.


코드로 이해하기

public class Main {
    public static void main(String[] args) {
        String name = "상구";
        int age = 20;

        String message = "안녕하세요, " + name + "님";
        boolean isAdult = age >= 19;

        System.out.println(message);
        System.out.println("성인인가요? " + isAdult);
    }
}

 

실행 결과는 다음과 같습니다.

안녕하세요, 상구님
성인인가요? true

 

여기서 "안녕하세요, " + name + "님"은 문자열 표현식입니다.
age >= 19는 boolean 표현식입니다.


4. 문장이란?

문장은 실제로 실행되는 하나의 완성된 명령 단위입니다.

Java에서는 대부분의 문장이 세미콜론 ;으로 끝납니다.

int age = 20;
System.out.println(age);
age++;

위 코드는 각각 하나의 문장입니다.

표현식과 문장의 차이는 이렇게 볼 수 있습니다.

10 + 5

 

이것은 표현식입니다.
값으로 계산될 수는 있지만, 단독으로 완성된 실행 문장으로 보기 어렵습니다.

int result = 10 + 5;

 

이것은 문장입니다.
10 + 5를 계산한 뒤 result 변수에 저장하는 완성된 실행 단위입니다.

 


세미콜론이 중요한 이유

Java에서는 문장의 끝을 나타내기 위해 세미콜론을 사용합니다.

int age = 20;

만약 세미콜론을 빼면 컴파일 오류가 발생합니다.

int age = 20

JavaScript에서는 상황에 따라 세미콜론이 자동으로 붙는 경우도 있지만,
Java에서는 문장 끝에 세미콜론을 직접 작성해야 합니다.


코드로 이해하기

public class Main {
    public static void main(String[] args) {
        String name = "상구";
        int age = 20;

        System.out.println(name);
        System.out.println(age);
    }
}

이 코드에서 아래 줄들은 모두 문장입니다.

String name = "상구";
int age = 20;
System.out.println(name);
System.out.println(age);

각 줄은 Java가 실제로 실행할 수 있는 명령 단위입니다.


5. 블록이란?

블록은 중괄호 { }로 묶인 문장들의 그룹입니다.

{
    int age = 20;
    System.out.println(age);
}

 

Java에서는 클래스, 메서드, 조건문, 반복문 등에서 블록을 자주 사용합니다.

public class Main {
    public static void main(String[] args) {
        int age = 20;

        if (age >= 19) {
            System.out.println("성인입니다.");
        }
    }
}

 

여기서 아래 부분이 if문의 블록입니다.

{
    System.out.println("성인입니다.");
}

 


블록은 왜 필요할까?

블록은 여러 문장을 하나의 범위로 묶기 위해 필요합니다.

예를 들어 if문에서 조건이 참일 때 여러 코드를 실행하고 싶다면 블록을 사용합니다.

if (age >= 19) {
    System.out.println("성인입니다.");
    System.out.println("입장 가능합니다.");
}

만약 블록이 없다면 여러 문장을 조건문 안에 묶어서 실행하기 어렵습니다.


블록과 변수 범위

블록은 변수의 사용 범위에도 영향을 줍니다.

public class Main {
    public static void main(String[] args) {
        if (true) {
            String name = "상구";
            System.out.println(name);
        }

        // System.out.println(name); // 오류 발생
    }
}

name 변수는 if 블록 안에서 만들어졌기 때문에, 블록 밖에서는 사용할 수 없습니다.

이것을 변수의 범위, 즉 scope라고 합니다.


코드로 이해하기

public class Main {
    public static void main(String[] args) {
        introducePerson("상구", 20);
    }

    public static void introducePerson(String name, int age) {
        if (age >= 19) {
            System.out.println(name + "님은 성인입니다.");
            System.out.println("Java 공부를 시작해도 좋습니다!");
        } else {
            System.out.println(name + "님은 아직 미성년자입니다.");
        }
    }
}

실행 결과는 다음과 같습니다.

상구님은 성인입니다.
Java 공부를 시작해도 좋습니다!

 

여기서 introducePerson 메서드의 { }, if문의 { }, else문의 { }가 모두 블록입니다.

 


마무리

오늘은 Java의 연산자, 기본 입출력, 표현식·문장·블록을 정리해봤습니다.
연산자는 값을 계산하고 비교하는 도구이고, 입출력은 사용자와 데이터를 주고받는 방법입니다.
표현식은 값이 되는 코드, 문장은 실행 단위, 블록은 문장들을 묶는 범위라고 이해하면 됩니다.

공부화이팅!

 

'웹 개발 > JAVA' 카테고리의 다른 글

[Java(5)] 흐름제어: break, continue, switch  (0) 2026.06.18
[Java(6)] 배열, 한번에 여러 값을 다루는 가장 기본적인 방법  (0) 2026.06.18
[Java(4)] 반복문, for문부터 do-while문까지 흐름으로 이해하기  (0) 2026.06.18
[Java(1)] Java 변수와 자료형  (0) 2026.06.17
[Java(3)]조건문, 코드가 스스로 판단하게 만드는 첫 번째 문법  (0) 2026.06.17
'웹 개발/JAVA' 카테고리의 다른 글
  • [Java(6)] 배열, 한번에 여러 값을 다루는 가장 기본적인 방법
  • [Java(4)] 반복문, for문부터 do-while문까지 흐름으로 이해하기
  • [Java(1)] Java 변수와 자료형
  • [Java(3)]조건문, 코드가 스스로 판단하게 만드는 첫 번째 문법
Sangenie
Sangenie
경제적 자유를 위한 하루 공부.
  • Sangenie
    새싹
    Sangenie
  • 전체
    오늘
    어제
    • 분류 전체보기 (43)
      • AI (0)
        • 하네스 엔지니어링 (0)
      • 웹 개발 (25)
        • Javascript (16)
        • JAVA (9)
      • 토막지식 (1)
      • TIL (7)
      • 경제 (8)
        • 경제뉴스 (7)
        • 비트코인 분석 (1)
      • Library (1)
        • IT (1)
        • Finance (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    java공부
    til
    반복문
    자바스크립트
    암호화폐
    객체
    프론트엔드공부
    조건문
    가상자산
    자바기초
    코딩공부
    경제뉴스
    TodayILearned
    자바
    JavaScript
    비트코인
    개발공부
    경제공부
    프론트엔드
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Sangenie
[Java(2)]연산자, 입출력, 표현식·문장·블록 쉽게 이해하기
상단으로

티스토리툴바