[Java] Java의 표준 입출력🖥️ Dev/Java2025. 6. 16. 19:35
Table of Contents
이 글은 Java의 가장 기본인 표준 입출력에 대해 정리한 글입니다.
📚 Java 프로그램 구조
자바는 기본적으로 클래스와 main 메서드 구조로 이루어져 있다.
public class Main {
public static void main(String[] args) {
// 여기서부터 코드 작성
}
}
public class Main { ... }
: 프로그램의 시작 클래스 (알고리즘 문제를 풀 때 대부분의 사이트에서는Main
으로 고정)public static void main(String[] args) { ... }
: 자바 프로그램의 진입점 (여기서부터 실행됨)
📚 출력 (Output)
자바에서 출력은 System
클래스의 System.out
을 사용하여 출력 작업을 수행한다.
📖 한 줄 출력
가장 기본적인 출력으로, System.out
의 println
과 print
함수를 사용하여 출력한다.
System.out.println("Hello, World!"); // "Hello, World!"를 출력 후 줄바꿈
System.out.print("Hello, "); // "Hello, "만 출력 (줄바꿈 없음)
System.out.print("World!"); // "World!"만 이어서 출력
System.out.println(); // 줄바꿈만 출력
// 예시 출력
Hello, World!
Hello, World!
System.out.println( ... )
: 출력 후 줄바꿈System.out.print( ... )
: 출력 후 줄바꿈이 없이 이어서 출력
📚 입력 (Input)
자바의 입력은 주로 Scanner
클래스를 사용하여 이루어진다. (알고리즘 문제를 풀 때 자주 사용되는 방식)
📖 Scanner
사용
import java.util.Scanner; // Scanner 클래스를 사용하기 위해 import
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // Scanner 객체 생성
int a = sc.nextInt(); // 정수 입력
String s = sc.next(); // 문자열(공백 전까지) 입력
double d = sc.nextDouble(); // 실수 입력
System.out.println(a);
System.out.println(s);
System.out.println(d);
sc.close(); // Scanner 사용이 끝나면 닫아주기 (권장)
}
}
import java.util.Scanner
:Scanner
클래스를 사용하기 위한import
Scanner sc = new Scanner(System.in)
:Scanner
객체 생성- 입력받는 값의 자료형에 따라
nextInt()
,next()
,nextDouble()
등 사용sc.nextInt()
: 정수 입력sc.next()
: 문자열 입력 (공백 전까지)sc.nextDouble()
: 실수 입력
위 코드와 같이 입력을 받으면, 공백을 기준으로 나눠서 각 변수에 할당된다. 예를 들어, 10 hello 3.14
를 한 줄로 공백으로 구분해서 입력 받으면, 변수 a
에는 10
, b
에는 hello
, 그리고 c
에는 3.14
가 각각 할당된다.
📖 한 줄 전체 입력받기
만약, 공백을 무시하고 한 줄 전체를 입력받아야 하는 경우에는 sc.nextLine
을 String
변수에 입력받으면 된다.
String line = sc.nextLine(); // 엔터(줄바꿈)까지 한 줄 전체 입력
- 주의 :
nextInt()
등 숫자 입력 후nextLine()
을 바로 사용하면 버그가 나타날 수 있음- 원인 : 숫자 입력 후 남아있는 줄바꿈(
\n
)을 읽어오며 의도하지 않은 결과가 나타날 수 있음 - 해결 :
sc.nextLine()
을 한번 더 호출해서 남은 줄바꿈을 소비함으로써 해결 가능
- 원인 : 숫자 입력 후 남아있는 줄바꿈(
🧩 추천 연습 문제
- 백준 2557번 Hello World : https://www.acmicpc.net/problem/2557
- 백준 7287번 등록 : https://www.acmicpc.net/problem/7287
- 백준 10699번 오늘 날짜 : https://www.acmicpc.net/problem/10699
- 백준 10926번 ??! : https://www.acmicpc.net/problem/10926
- 백준 1000번 A+B : https://www.acmicpc.net/problem/1000
- 백준 1001번 A-B : https://www.acmicpc.net/problem/1001
'🖥️ Dev > Java' 카테고리의 다른 글
[Java] Java의 연산자 (산술, 비교, 논리, 대입 등) (0) | 2025.07.05 |
---|---|
[Java] Java의 변수와 상수 (0) | 2025.07.04 |
[Java] Java의 기본 데이터 타입 (1) | 2025.06.24 |
[Java] Java 개발 환경 세팅 가이드 (with. Visual Studio Code) (0) | 2025.06.16 |
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥