본문 바로가기
Web Programming Language/JAVA

JAVA) print, printf, println 차이점

by manchesterandthecity 2021. 3. 11.

print : 괄호안 내용을 단순히 출력. 개행문자(=줄바꿈문자=\n) 포함안됨.

printf : C에서의 printf와 동일. %d, %s 등을 쓰기위해 사용. 개행문자 포함X

println : 괄호안 내용을 출력한 후 마지막에 개행문자가 포함되어 있어 출력후 한 줄 띄워짐.

 

<예시>

public class ThreadTest extends Thread{
	public static void main(String[] args) {
		int num = 5;
		System.out.print("print ! " + num + "\n");	//print
		System.out.printf("printf ! %d \n", num);	//printf
		System.out.println("println ! " + num);		//println
	}
}

 

결과화면

println 에는 개행문자가 없는데 밑에 한칸 띄워져 있음 !

 

 

 

 

 

출처 :

moon1226.tistory.com/12

 

 

 

 

자바의 출력문(println, printf)

 

출력 - println()

 

개발자가 열심히 프로그래밍을 하더라도 결과를 볼 수 있는 명령문을 실행하지 않으면 절대 직접 눈으로 볼 수 없다. 결과를 봐야 이 프로그램이 내가 생각한대로 잘 돌아가고 있는지 알 수 있다. println은 자바에서의 기본 출력문으로 가장 많이 사용되며 출력하고 싶은 내용 그대로를 입력하여 출력한다.

 

println()

System.out.println("문자열");

          또는

System.out.println(변수명);

          또는

System.out.println("문자열"+변수명);

  • 문자열을 출력하기 위해서는 큰따옴표로 묶어줘야 한다.

  • 큰 따옴표 없는 것은 모두 변수명으로 인식한다. (입력한 변수명이 없을 경우 에러발생)

  • 문자열과 변수명을 함께 사용할 수 있으나 반드시 '+'로 연결시켜줘야 한다.

  • 가로안의 내용을 출력한 후 자동으로 줄바꾸는 기능이 있다.

Tip) 이클립스에서는 'sysout' 이라고 입력하고 'ctrl+space'를 누르면 System.out.println()이 자동 입력된다.

 

 

◈ 예제

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

public class Println {

 

    public static void main(String[] args) {

        //기본 출력문 println()        

        //sysout + 자동완성(ctrl + space)

        

        int number = 10;

        String str = "안녕, 자바";

        

        System.out.println("Hello, World."); //문자열 출력

        System.out.println(number); //int형 변수 출력

        System.out.println(str); // String형 변수 출력

        System.out.println("내 나이는 "+number+"살 입니다."); // 문자열 + 변수 출력        

        

    }//main

 

}//class

                                                                             Colored By Color Scripter

 

실행 결과

Hello, World.

10

안녕, 자바

내 나이는 10살 입니다.

 

· String과 기본형은 저장된 값 그대로 출력된다.

· 변수와 문자열을 '+'로만 이어주면 같이 사용할 수 있다.

· 실행 결과를 보면 자동으로 내용을 출력 후 줄바꿈 기능이 있는걸 볼 수 있다. 절대로 명령문을 한줄에 하나씩 써서 줄바꿈이 된 것이 아니다.

 

 

 

No. 02

 

 

형식화된 출력 - printf()

 

기본 출력문은 println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.

반면에 printf()는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력할 수 있다.

 

printf()

System.out.printf("출력 서식",출력할 내용);

  • 출력 후 줄바꿈을 하지 않는다. 줄바꿈을 하려면 지시자 '%n'을 넣어줘야 한다.

  • 출력하려는 값의 수만큼 지시자도 사용해야 한다.

  • 출력될 값과 지시자의 순서는 일치해야 한다.

  • 지시자를 제외한 문자는 입력한 그대로 출력된다.

 

출력 서식

%[-][0][n][.m]지시자

  • 출력 서식의 지시자를 제외한 나머지는 생략 가능하다. 예) %d 식으로 사용 가능.

  • n : 출력할 전체 자리수 지정(오른쪽 정렬).  예) %3d, 전체자리수가 3인 정수

  • 0 : 전체 자리수가 지정된 경우 왼쪽의 남는 자리에 0을 출력.  예) %03d

  • - : 전체 자리수가 지정된 경우 왼쪽 정렬하고 빈칸에 공백 출력.

  • .m : 소수점 아래 자리수 지정. 잘리는 소수점 자리수는 반올림 시켜서 표시.  예)3.2f

 

 지시자

설명 

 %b

 boolean 형식으로 출력 

 %d

 정수 형식으로 출력

 %o

 8진수 정수의 형식으로 출력

 %x 또는 %X

 16진수 정수의 형식으로 출력

 %f

 소수점 형식으로 출력

 %c

 문자형식으로 출력 

 %s

 문자열 형식으로 출력

 %n  줄바꿈 기능

 %e 또는 %E

 지수 표현식의 형식으로 출력

 

 

◈ 예제1

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

public class Printf {

 

    public static void main(String[] args) {

        

        int age = 10;        

        String addr = "경기도";

        

        //'%n'지시자를 사용 안 했을 경우

        System.out.printf("줄바꿈 기능");

        System.out.printf("없음.");

        

        //'%n'지시자를 사용한 경우

        System.out.printf("줄바꾸기%n");

        System.out.printf("성공!%n");

        

        System.out.printf("내 나이는 %d살 입니다.%n",age);

        System.out.printf("내 나이는 %d살 이고 %s에 살고 있습니다.%n",age,addr);

        

    }//main

 

}//class

                                                                  Colored By Color Scripter

 

실행 결과

줄바꾸기 기능없음.줄바꾸기

성공!

내 나이는 10살 입니다.

내 나이는 10살이고 경기도에 살고 있습니다.

 

· 기본적으로 줄바꿈 기능이 없고 '%n'지시자를 사용한 곳에서 줄바꾸는 기능을 하는 것을 볼 수 있다.

· 지시자의 수와 출력하려는 값의 수는 같아야 하며 출력하려는 값은 콤마(',')로 구분한다.

· 출력하려는 값은 지시자의 순서와 같아야 한다.

· 지시자의 형식과 출력하려는 값의 형식이 같지 않으면 에러가 발생한다.

 

 

◈ 예제2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

public class Printf {

 

    public static void main(String[] args) {

        //자리수 지정은 안 했을 경우 왼쪽으로 정렬된다.

        System.out.printf("자리수 미지정 :%d%n",1);

        System.out.printf("자리수 미지정 :%d%n",10);

        System.out.printf("자리수 미지정 :%d%n",100);

        System.out.printf("자리수 미지정 :%d%n",1000);

        

        //자리수 지정했을 경우  오른쪽으로 정렬된다.(남는 자리수는 공백)

        System.out.printf("자리수 지정 :%4d%n",1);

        System.out.printf("자리수 지정 :%4d%n",10);

        System.out.printf("자리수 지정 :%4d%n",100);

        System.out.printf("자리수 지정 :%4d%n",1000);

        

        //자리수 지정 후 '-'사용하면 왼쪽으로 정렬된다.

        System.out.printf("자리수 지정('-'사용) :%-4d%n",1);

        System.out.printf("자리수 지정('-'사용) :%-4d%n",10);

 

        System.out.printf("자리수 지정('-'사용) :%-4d%n",100);

 

        System.out.printf("자리수 지정('-'사용) :%-4d%n",1000);

 

        

        //자리수 지정 후 '0'사용하면 오른쪽으로 정렬된다. (왼쪽 자리수는 0으로 채운다)

        System.out.printf("자리수 지정('0'사용) :%04d%n",1);

        System.out.printf("자리수 지정('0'사용) :%04d%n",10);

        System.out.printf("자리수 지정('0'사용) :%04d%n",100);

        System.out.printf("자리수 지정('0'사용) :%04d%n",1000);

        

    }//main

 

}//class

                                                                       Colored By Color Scripter

 

실행 결과

자리수 미지정 :1

자리수 미지정 :10

자리수 미지정 :100

자리수 미지정 :1000

자리수 지정 :    1 

자리수 지정 :  10

자리수 지정 : 100

자리수 지정 :1000

자리수 지정('-'사용) :1

자리수 지정('-'사용) :10

자리수 지정('-'사용) :100

자리수 지정('-'사용) :1000

자리수 지정('0'사용) :0001

자리수 지정('0'사용) :0010

자리수 지정('0'사용) :0100

자리수 지정('0'사용) :1000

 

 

◈ 예제3

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class Printf {

 

    public static void main(String[] args) {

        

        float f = 1.2345f;

        

        //소수점 자리수 미지정시

        System.out.printf("소수점 자리수 미지정 : %f%n",f);

        //소수점 자리 지정시

        System.out.printf("소수점 자리수 지정 : %.3f%n",f);    

        

    }//main

 

}//class

                                           Colored By Color Scripter 

 

실행 결과

소수점 자리수 미지정 : 1.234500

소수점 자리 지정 : 1.235

 

· 소수점 자리를 3자리로 지정했기 때문에 4번째 자리에서 반올림한 결과를 출력한다.

 

 

 

출처 :

keep-cool.tistory.com/15

'Web Programming Language > JAVA' 카테고리의 다른 글

BitSet 클래스  (0) 2025.02.17
DTO와 VO  (0) 2025.02.12
Records  (1) 2025.02.12
orElse vs orElseGet 차이점  (0) 2025.02.12
JAVA) Java 프로그램 실행 구조  (0) 2020.11.18

댓글