본문 바로가기

언어공부/Java

자바 print 출력 메소드 - print()/ println() / printf()

문장을 출력하기 위해서는 print출력 메소드를 이용한다.

1. print() 메소드

public class Test1 {
	public static void main(String[] args) {
    	int a=100, b=300; //int형 변수 a와 b 둘다 선언 및 초기화.
		System.out.print("HELLO!YEONY!");
		System.out.print(a+b);//연산도 가능하다.
        //숫자+문자(문자+숫자)일 때는 문자가 우선되어 문자+문자가 된다.
		System.out.print(5+5+"");
        //왼쪽에서 오른쪽 순으로 연산이 되기 때문에 5+5=10 이 되고, 10+""는 문자를 우선해서 "10"이됨.
		System.out.print(""+5+5);
        //""+5로 "5"+5가 되고 문자를 우선하므로 "55"가 된다.
        
        // 출력되는 문장은 "HELLO!YEONY!4001055"으로 줄바꿈 없이 출력된다.
	}
}

모바일 배려용

 

메소드 내에서 기술한 내용을 출력하며 줄 바꿈하지 않는다. (\n으로 줄바꿈 한다.)

연산도 가능하며, 숫자+문자(문자+숫자)일 때는 문자가 우선되어 문자+문자가 된다. (연산은 왼쪽에서 오른쪽 순)

2. println() 메소드

public class Test1 {
	public static void main(String[] args) {
    	int a=100, b=300; //int형 변수 a와 b 둘다 선언 및 초기화.
		System.out.println("HELLO!YEONY!");
		System.out.println(a+b);//연산도 가능하다.
        //숫자+문자(문자+숫자)일 때는 문자가 우선되어 문자+문자가 된다.
		System.out.println(5+5+"");
        //왼쪽에서 오른쪽 순으로 연산이 되기 때문에 5+5=10 이 되고, 10+""는 문자를 우선해서 "10"이됨.
		System.out.println(""+5+5);
        //""+5로 "5"+5가 되고 문자를 우선하므로 "55"가 된다.
        
       /*출력되는 문장은 "HELLO!YEONY!(개행)
                         400(개행)
                         10(개행)
                         55(개행)"으로 줄바꿈되어 출력된다.*/
	}
}

모바일 배려용

 

ln은 line의 약어로 메소드 내에서 기술한 내용을 출력 후 자동으로 개행(줄 바꿈)한다. (\n으로 줄바꿈 한다.)

연산도 가능하며, 숫자+문자(문자+숫자)일 때는 문자가 우선되어 문자+문자가 된다. (연산은 왼쪽에서 오른쪽 순)

3.printf() 메소드

public class Test1 {
	public static void main(String[] args) {
    	int a=100, b=300; //int형 변수 a와 b 둘다 선언 및 초기화.
        float c=352.64f;
        boolean d=true;
		System.out.printf("HELLO!YEONY!");
		System.out.printf("%d \n",a+b);
        //%d에 a+b의 값이 10진수 정수타입으로 출력.
        //여기서 \n과 %n은 줄을 바꿔준다.
       
        System.out.printf("%o %x %f %n",a,b,c);
        //%o에 a의 8진수 정수, %x에 b의 16진수 정수, %f에 c의 실수타입으로 출력.
        
        System.out.printf("%5d %+5d %-5d %05d \n",a,a,a,a);
        /*%5d:전체 폭은 5이며, 우측정렬.
       	  %+5d:전체 폭은 5이며, 우측정렬, 앞에 부호+ 출력됨.
          %-5d:전체 폭은 5이며, 좌측정렬.
          %05d:전체 폭은 5이며, 우측정렬, 비어있는 공간에 0이 출력됨.*/
          
         System.out.printf("%f %8.2f %-8.2f %n",c,c,c);
        /*%f:f는 소수점 이하 6자리가 기본이므로 폭은 10이다.
       	  %8.2f:전체 폭은 8이며, 소수점 이하 2, 우측정렬.
          %-8.2f:전체 폭은 8이며,소수점 이하 2, 좌측정렬.
          
          System.out.printf("%b %e",d,c);

       /*출력되는 문장은 "HELLO!YEONY!400(개행)
                         144 12c 352.640015(개행)
                           100  +100 100   00100(개행)
                         352.640015   352.64 352.64   (개행)
                         true 3.526400e+02"으로  출력된다.*/
	}
}

모바일 배려용

printf 지시자(%, 형식지정자)를 기술하여 원하는 자료 타입 형태로 출력할 수 있는 메소드.

변수를 출력할 때는 꼭 %로 형식을 지정해줘야 한다.(%n과 \n으로 줄바꿈 한다.)

(이상하게 float c=352.64f를 printf %f로 실수를 나타내면 값이 이상해진다..

->컴퓨터에서 이진수로 계산하기 때문에 값에 오류가 있다.)

 

(%, 형식지정자 종류)

 

형식 지정자 의미
%o 8진수 정수 숫자 형태 출력.
%d 10진수 정수 숫자 형태 출력.
%x, %X 16진수 정수 숫자 형태 출력.
%f 10진수 실수 숫자 형태 출력.
%c 단일 문자 형태 출력.
%s 문자열 형태 출력.
%b boolean 타입 형태 출력.
%e, %E 지수 타입 형태 출력.
%% % 문자 출력

(출력값의 필드 폭과 정렬)