본문 바로가기
JAVA/이재환의 자바 프로그래밍 입문

[Java] Ch.5 콘솔 출력과 입력

by ♡˖GYURI˖♡ 2023. 10. 13.

콘솔 출력

System.out.println()
System.out.print()
System.out.prinf()

printf()

System.out.printf("포맷 문자열", 데이터, 데이터, 데이터 ...);
System.out.printf("정수 : %d, 실수 : %f, 글자 : %c, 글자들 : %s", 10, 3.14, 'A', "홍길동");

출력 결과 : 정수 : 10, 실수 : 3.14, 글자 : A, 글자들 : 홍길동

 

출력 서식 지정자

서식 지정자 출력의 형태
%d 10진수 정수 형태 출력
%o 8진수 정수 형태 출력
%x 16진수 정수 형태 출력
%f 실수 출력
%e e 표기법 기반 실수 출력
%g 출력 대상에 따라서 %e 또는 %f 형태 출력
%s 문자열 출력
%c 문자 출력
public class Ex01_printf 
{
    public static void main(String[] args) 
    {
        String name = "Hong Gil Dong";    // 글자들을 저장할 때 사용하는 자료형
        int age = 20;
        double height = 175.5;

        System.out.printf("%s의 나이는 %d이고, 키는 %f입니다.\n", name, age, height);
        System.out.printf("%s의 나이는 %d이고, 키는 %.2f입니다.\n", name, age, height);
    }
}

printf()는 줄바꿈을 하지 않기에 '\n' 특수 문자를 이용하여 줄바꿈을 함

 

 

콘솔 입력

Scanner 클래스

  • 콘솔(키보드) 입력 기능 제공
  • 한 번에 하나의 값만 입력받을 수도 있지만, 여러 데이터를 한 번에 입력받을 수도 있음
  • 여러 데이터가 한 번에 입력되면 입력된 내용은 공백이나 탭으로 구분
import java.util.Scanner;

public class Ex02_Scanner1
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("숫자를 1 2 3 이렇게 입력하고 엔터를 입력하세요.");
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        int num3 = sc.nextInt();

        System.out.println("숫자를 1 입력하고 엔터를 입력하세요.");
        int num4 = sc.nextInt();
        System.out.println("숫자를 2 입력하고 엔터를 입력하세요.");
        int num5 = sc.nextInt();
        System.out.println("숫자를 3 입력하고 엔터를 입력하세요.");
        int num6 = sc.nextInt();

        System.out.printf("%d %d %d %d %d %d", num1, num2, num3, num4, num5, num6);
    }
}
import java.util.Scanner;

public class Ex03_Scanner2
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        System.out.println("홍길동 전우치 손오공 이렇게 입력하고 엔터를 입력하세요.");
        String name1 = sc.nextLine();
        
        System.out.println("홍길동 전우치 손오공 이렇게 입력하고 엔터를 입력하세요.");
        String name2 = sc.next();
        String name3 = sc.next();
        String name4 = sc.next();

        System.out.printf("[%s] [%s] [%s] [%s]", name1, name2, name3, name4);
    }
}

  • nextLine() 메서드는 입력된 값을 Enter가 입력될 때 한 번에 줄 단위로 입력받음
  • next() 메서드는 입력받은 값을 일단 버퍼에 넣고 공백(스페이스)이나 탭으로 구분하여 입력을 구분하여 처리함