[Java] Java의 표준 입출력🖥️ Dev/Language2025. 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클래스를 사용하기 위한importScanner 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 > Language' 카테고리의 다른 글
| [Java] Java의 변수와 상수 (0) | 2025.07.04 |
|---|---|
| [Java] Java의 기본 데이터 타입 (1) | 2025.06.24 |
| [C언어] 배열과 포인터의 관계 (1차원 배열 & 2차원 배열) (0) | 2025.04.08 |
| [C언어] 포인터의 기본 개념 (0) | 2025.04.04 |
| [C++] VSCode를 이용한 C++ 개발 환경 세팅 가이드 (0) | 2025.02.02 |
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥