본문 바로가기
Back-End/Java

[Java] 출력문 println, print, printf 의 차이

by 찐코딩 2021. 8. 4.

* println()

 - 괄호 안 내용 출력한 후 마지막에 개행 문자(줄 바꿈 문자=\n)가 포함되어 있어

   출력 후 한 줄 띄워짐.
    ==> ln : line, 출력을 한 후에 줄바꿈을 하라는 명령

stem.out.println("문자열");
          또는
System.out.println(변수명);
          또는
System.out.println("문자열"+변수명);
- 문자열을 출력하기 위해서는 큰따옴표로 묶어줘야 함.
- 큰 따옴표 없는 것은 모두 변수명으로 인식 (입력한 변수명이 없을 경우 에러발생)
- 문자열과 변수명을 함께 사용할 수 있으나 반드시 '+'로 연결시켜줘야 함.

tip) IDE 툴에서는 syso 입력 후 Ctrl+space를 누르면 System.out.println() 이 자동 입력됨

 

* print()

 -  괄호 안 내용을 단순히 출력. 개행문자 포함 안 됨.

 

* printf()

-  여기서 f는 format의 약자 'f'. 

-  즉, 여러 지시사들을 통해 여러가지 형태로 변환하여 출력할 수 있음.

-  개행문자 포함 안 됨.

   (그러나 지시사 뒤에 \n 을 입력하면 줄 바꿈을 할 수 있다.)

- %d : 정수값 출력
   +) %,d 하면 숫자 3자리(천단위) 마다 콤마가 찍혀 출력된다.
- %f : 실수값 출력
- %s : 문자열 출력

printf() 활용 예시

int num1 = 2147483647;
double num2 = 91.3466666666666;

//정수를 읽기 쉽게 , 표시 사용하여 출력하기
System.out.printf("num3>>>%,d\n",num3);

//실수를 소숫점 6자리까지 출력하기
System.out.printf("avg>>>%f\n",avg);

//소숫점 3자리까지 출력하기
System.out.printf("avg>>>%.3f\n",avg);

 

결과값

num3>>>2,147,483,647
avg>>>91.3466666666666
avg>>>91.346667

두번째 세번째 줄을 보면, 자동으로 반올림을 해서 출력해준다.

 


예제문)

결과값

숫자와 문자를 함께 쓰면 숫자도 문자열로 인식한다는 점. 반드시 숙지할 수 있도록★★★

(정처기 시험에 나옴)

 

 

 

그리고 이건 내가 pirntf 구문 쓰면서 오류 났던 부분인데

구글링하기 전까지 뭐가 잘못된지 몰랐음 

 

결과창

num3>>>2147483647
num3>>>2,147,483,647
avg>>>91.3466666666666
avg>>>91.346667
avg>>>91.347
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '.'
          at java.util.Formatter.checkText(Unknown Source)
          at java.util.Formatter.parse(Unknown Source)
          at java.util.Formatter.format(Unknown Source)
          at java.io.PrintStream.format(Unknown Source)
          at java.io.PrintStream.printf(Unknown Source)
          at sist.Ex03.main(Ex03.java:66)

보면 잘 뜨다가 마지막 줄이 오류가 난 것을 볼 수 있는데,

%.2 뒤에 f를 쓰지 않아서 발생한 구문오류였다....

 

그리고 printf 구문은 개행문자가 없어 원래 줄바꿈이 안되는데

보면 입력값에 \n를 넣어 줄바꿈이 되게 했다.

 

댓글