Programming/Java

[JAVA] System.out 출력 클래스 print, println, printf()

Criming 2022. 10. 3. 19:31

System.out 출력 클래스

System은 자바 표준 입출력 클래스로, 사용자와 프로그램 사이의 입출력을 할 수 있도록 System 클래스(java.lang 패키지)를 제공하고 있다.

(※자바는 대소문자 구분함. system은 작동x )

 

System.out.print() 

  • 괄호 안의 내용을 출력하고 줄바꿈을 하지 않는다.
  • 자료형(int, long, float, double 등) 구분하지 않고 문자를 그대로 출력한다.
  • 엔터 입력시 버퍼(buffer)에 \n(개행문자)는 포함안된다.(엔터 누르는 순간 엔터는 입력이 안된다.)

System.out.println()

  • 괄호 안의 내용을 출력하고 줄바꿈을 한다.
  • print와 동일하게 자료형(int, long, float, double 등) 구분하지 않고 문자를 그대로 출력한다.
  • 차이점은 엔터 입력시 버퍼(buffer)에  \n(개행문자)가 같이 들어간다. (엔터 누르는 순간 엔터도 입력된걸로 간주)

System.out.printf()

자료형 정수형 실수형 문자열형 문자형
형태 %d %f %s %c
  • 괄호 안의 내용을 출력하고 줄바꿈을 하지 않는다.
  • 자료형을 구분하며, 여러 자료형을 함께 출력하고 싶을 때 사용한다.
  • 출력할 자료형의 자릿수를 지정할 수 있다.
  • 엔터 입력시 버퍼(buffer)에 \n(개행문자)는 포함안된다.

예제1) print, println, printf 의 사용법

public class Ex1 {
	public static void main(String[] args) {
		
		System.out.print("(개행안됨) 입력 : ");
		System.out.printf("%d %s\n", 10, "문자열");
		
		System.out.println();//줄 개행 용도
		
		System.out.println("(개행됨) 입력 : ");
		System.out.println("확인하기 위한 문장");
		
		System.out.println("\n개행\n됨");
		
	}
}

예제2) printf의 자료형 구분 출력법

public class Ex2 {
	public static void main(String[] args) {
		
		System.out.printf("정수형 : %d\n", 10);
		// 3자릿수
		System.out.printf("정수형 : %3d\n", 10); 
		// 기본 소수점 6자리까지 출력
		System.out.printf("실수형 : %f\n", 1.234); 
		// 소수점 3자리까지만 출력
		System.out.printf("실수형 : %.3f\n", 1.234);
		System.out.printf("문자열형 : %s\n", "hello world");
		System.out.printf("문자형 : %c\n", 'A');
		System.out.println();
		
		System.out.printf("이름: %s \n나이: %s \n체중: %.1f", "홍길동", 20,65.7);
	}
}

예제3) 영수증 형태로 출력하기

public class Quiz {
	public static void main(String[] args) {
		System.out.println("=======================================");
		System.out.println("이름\t나이\t전화번호\t\t회비");
		System.out.println("=======================================");
		System.out.printf("%s\t\"%d\"\t%d-%d\t\\%d\n", "홍길동",15,3672,1234,20000);
		System.out.printf("%s\t\"%d\"\t%d-%d\t\\%d\n", "고길동",15,2238,1234,30000);
		System.out.printf("%s\t\"%d\"\t%d-%d\t\\%d\n", "김말이",15,1234,1234,50000);
		System.out.println("---------------------------------------");
		System.out.printf("%s\t\t\t\t\\%d\n", "총합계",100000);
		System.out.println("---------------------------------------");
		
		System.out.println("=======================================");
		System.out.println("이름\t나이\t전화번호\t\t회비");
		System.out.println("=======================================");
		System.out.println("홍길동\t\"" + 15 + "\"\t" + 3672 + "-" + 1234 + "\t\\" + 20000);
		System.out.println("홍길동\t\"" + 15 + "\"\t" + 3672 + "-" + 1234 + "\t\\" + 20000);
		System.out.println("홍길동\t\"" + 15 + "\"\t" + 3672 + "-" + 1234 + "\t\\" + 20000);
		System.out.println("---------------------------------------");
		System.out.println("총합계\t\t\t\t\\" + 100000);
		System.out.println("---------------------------------------");
	}
}