자바 입출력

제민·2024년 7월 2일

Java 개념 공부

목록 보기
5/21
post-thumbnail

자바의 입출력(Input/Output) 방법에 대해 적었습니다.

출력문 (Output)

자바에서는 표준 출력(콘솔)에 데이터를 출력하기 위해 System.out 객체를 사용합니다.
주요 메서드로는 print(), println(), printf()가 있습니다.

print()

print() 메서드는 출력할 내용을 콘솔에 출력하지만 줄 바꿈을 하지 않습니다.

System.out.print("Hello, ");
System.out.print("World!");
//결과
Hello, World!

println()

println() 메서드는 출력할 내용을 콘솔에 출력하고 줄 바꿈을 합니다.

System.out.println("Hello, World!");
System.out.println("안녕하세요.");
//결과
Hello, World!
안녕하세요.

printf()

printf() 메서드는 형식화된 출력을 제공합니다. printf()는 첫 번째 매개변수로 형식 문자열을 받고, 이후의 매개변수는 형식 문자열에서 지정한 형식에 맞게 대입됩니다.
포맷 안에서 쓸 수 있는 키워드
%d: 정수
%c: 문자
%s: 문자열
%f: 실수 (%와 f 사이에 .1, .2 같이 쓰면 소수점 아래로 원하는 만큼 표시할 수 있습니다.)

int age = 25;
double height = 178.5;
System.out.printf("나이: %d, 키: %.2f %n", age, height);
//결과
나이: 25, 키: 178.50

%.2f는 소수점 둘째 자리까지의 실수를 의미합니다.

출력문의 이스케이프 시퀀스

자바에서 출력문을 작성할 때, 이스케이프 시퀀스를 사용하면 특수한 문자나 형식을 출력할 수 있습니다. 이스케이프 시퀀스는 백슬래시(\)로 시작하며, 다음과 같은 주요 이스케이프 시퀀스들이 있습니다:

  1. \n: 새로운 줄(줄 바꿈)
  2. \t: 탭
  3. \\: 백슬래시 출력
  4. \": 큰따옴표 출력
  5. \b: 백스페이스
  6. \r: 캐리지 리턴
public class EscapeSequenceExample {
    public static void main(String[] args) {
        System.out.print("Hello, World!"\n);
        System.out.println("이름:\제민");
        System.out.println("백슬래시: \\");
        System.out.println("\"프로그래밍 배우기\"");
    }
}
//결과
Hello, World!
이름:   제민
백슬래시: \
"프로그래밍 배우기\"

출력문 예제

다음은 출력문을 사용하는 예제 코드입니다:

package a.basic;

public class Output {
    public static void main(String[] args) {
        // 한 줄을 출력하고 개행을 하는 출력문
        System.out.println("안녕하세요");
        System.out.println("제민 입니다");

        // 단순하게 출력을 할 때 사용하는 출력문
        System.out.print("제 성별은\n");

        // print에서 개행을 하고 싶을 때는 \n을 이용한다.
        System.out.print("남자입니다.\n\n");

        String name = "제민";
        System.out.println("안녕하세요 저는 " + name + "입니다.");

        // System.out.printf(문자열 포멧, 값1, 값2);
        System.out.printf("안녕하세요 저는 %s입니다.\n", name);
        System.out.printf("안녕하세요 저는 %s입니다. 나이는 %d이고, 키는 %.1f입니다.", "전제민", 55, 180.5);
    }
}

위 코드는 다양한 출력문을 사용하는 방법을 보여줍니다.

입력문 (Input)

자바에서 사용자로부터 입력을 받기 위해 Scanner 클래스를 사용합니다. Scanner 클래스는 다양한 데이터 타입을 입력받을 수 있는 메서드를 제공합니다. 이를 통해 사용자로부터 데이터를 읽어올 수 있습니다.

Scanner 클래스의 주요 메서드

  1. next():보통 문자(열) 타입 데이틀 입력받습니다.
    그리고 사용자가 입력한 값 중 공백이 있을 경우 공백 이전까지의 값만 입력받습니다.
  2. nextLine(): 버퍼에서 \n(엔터값)을 비워줍니다.
  3. nextByte(): byte 타입 데이터를 입력받습니다.
  4. nextShort(): short 타입 데이터를 입력받습니다.
  5. nextInt(): int 타입 데이터를 입력받습니다.
  6. nextLong(): long 타입 데이터를 입력받습니다.
  7. nextFloat(): float 타입 데이터를 입력받습니다.
  8. nextDouble(): double 타입 데이터를 입력받습니다.

★정수나 실수를 입력받는 코드를 작성했을 때 \n토큰이 함께 들어오기 때문에 nextLine()을 통해서 비워주는 코드를 작성해야한다.

먼저, Scanner 객체를 생성하고 System.in을 통해 표준 입력(키보드 입력)을 설정합니다.

Scanner sc/*sc는 변수명이므로 자유롭게 작성*/ 
= new Scanner(System.in);

입력 예제

아래의 코드는 Scanner 클래스를 사용하여 다양한 데이터 타입을 입력받고, 입력받은 값을 출력하는 예제입니다:

import java.util.Scanner;
// Scanner를 사용하기 위해서 외부로부터 가져온다.

public class Input {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("=====================");
        String name;
        int age;
        float height;

        System.out.print("이름을 입력해주세요: ");
        name = sc.next();
        sc.nextLine(); // 버퍼에서 \n(엔터값)을 비워주는 코드 (그래야 에러가 발생하지 않음)

        System.out.print("나이를 입력해주세요: ");
        age = sc.nextInt();
        sc.nextLine();

        System.out.print("키를 입력해주세요: ");
        height = sc.nextFloat();
        sc.nextLine();

        System.out.println("이름: " + name + " 나이: " + age + " 키: " + height);
        System.out.println("=====================");
        sc.close();
    }
}
profile
초보부터 시작하는 개발자 생활

0개의 댓글