티스토리 뷰

★ printf ( ) 란? 

- '지시자(specifier)'를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다.

'지시자'는 값을 어떻게 출력할 것인지를 지정해주는 역할을 한다. 

정수형 변수에 저장된 값을 10진 정수로 출력할 때는 지시자 '%d'를 사용하며,

변수의 값을 지정된 형식으로 변환해서 지시자 대신 넣는다.

 

예 ) int 타입의 변수 age의 값이 14일 때,

      printf ( ) 는 지시자 '%d' 대신 14를 넣어서 출력한다. 

 

★ println( ) 과 printf ( ) 차이는 ? 

- 평소 화면에 출력할 때, println( )을 써왔는데 단점은 변수의 값을 그대로 출력하므로 값을 변환하지 않으면 다른 형식으로 출력할 수 없다. 같은 값이라도 다른 형식으로 출력하고 싶을 때, printf( ) 를 사용한다. 

println( )과 달리 printf ( ) 는 출력 후 줄바꿈을 하지 않는다.

줄바꿈을 하고 싶다면 지시자 ' %n '을 따로 넣어줘야한다. 

 

예 ) 소수점 둘째자리까지만 출력하고 싶을 때, 정수를 16진수나 8진수를 출력하고 싶을 때

 

 System.out.printf("age:%d", age); 
 System.out.printf("age:%d", 14);
 System.out.printf("age:14"); // "age : 14 " 가 화면에 출력된다.

 

만약 출력하는 값이 2개라면, 지시자도 2개를 사용해야하고, 출력될 값과 지시자의 순서는 일치해야한다.

3개 이상의 값도 지시자를 지정해서 출력할 수 있으며 개수 제한은 없다.

System.out.printf("age:%d year:%d", age, year);
System.out.printf("age:%d year:%d", age, year,14,2017); 
// "age:14 year:2017" 이 화면에 출력된다.

 

지시자 설명
%b 불리언(boolean) 형식으로 출력
%d 10진 (demical) 정수의 형식으로 출력
%o 8진 (octal) 정수의 형식으로 출력
%x, %X 16진(hexa - demical) 정수의 형식으로 출력
%f 부동 소수점(floating - point)  표현식의 형식으로 출력
%e,%E 지수 ( exponent) 표현식의 형식으로 출력
%c 문자 (character)로 출력
%s 문자열 (string) 로 출력