표준 출력
표준 출력 스트림
이 문서에서는 자바에서 표준 출력 스트림을 이용하는 방법에 대해서 살펴본다.
표준 출력이란
표준 출력(Standard Output)이란 프로그램에서 외부 환경으로 일반 메세지를 출력하는 것을 말한다. 외부 환경은 운영체제(OS)라고 볼 수 있으며, 이러한 연결은 형태와 개수 등이 정해져 있기 때문에 자바에서 임의로 만들거나, 지울 수 없도록 되어 있다. 자바에서 표준 출력 스트림을 이용하기 위해서는 System.out
을 사용하도록 되어 있으며, System.out
이란 System 도구 안에 있는 out이란 이름의 요소를 의미한다고 볼 수 있다(클래스에 대해서 배우면 좀 더 자세히 살펴볼 수 있다).
표준 출력 명령
표준 출력 명령 중 자주 사용되는 것들을 정리하면 다음과 같다.
System.out.print(내용)
: 표준 출력 통로로 내용을 형태 그대로 출력한다.System.out.println(내용)
: 표준 출력 통로로 내용을 형태 그대로 출력한 뒤 개행문자를 출력한다.System.out.printf(형식, 값...)
: 표준 출력 통로로 형식과 값을 결합한 뒤 출력한다. C언어의printf
명령과 유사하다.
System.out.print()
내용을 아무런 처리 없이 있는 그대로 출력하는 명령이다. 모든 데이터 형태가 출력 가능하기 때문에 데이터의 유형을 신경쓸 필요가 없다. 예를 들어 숫자 100
을 출력하고 싶다면 다음과 같이 작성할 수 있다.
hello
라는 글자를 출력하고 싶다면 다음과 같이 작성한다.
이처럼 데이터의 유형에 맞게 다양한 형태의 값을 모두 출력할 수 있다. 좀 더 자세히 설명하자면 모든 데이터를 출력할 수 있도록 같은 이름으로 다양한 기능을 준비해 두었다고 표현할 수 있으며, 이를 나중에 메소드 오버로딩(Method Overloading)이라고 부른다. 이는 클래스 단원에서 배운다.
아래의 예시를 보면 데이터의 유형에 따른 출력이 가능한 것을 확인할 수 있다.
실행 결과는 다음과 같이 나온다.
System.out.print
명령은 출력되는 값에 아무런 처리를 하지 않기 때문에 여러 개의 명령을 사용해도 연속해서 출력된다는 특징을 가지고 있다. 이를 이용하여 연속해서 나오는 데이터도 나누어 출력할 수 있다.
주의사항은 반드시 내용이 한 개 있어야 한다는 것이며, 내용이 없거나 두 개 이상인 경우는 사용이 불가능하다는 것이다.
System.out.println()
앞서 살펴본 System.out.print
명령과 동일한 작업을 수행하지만 출력 후 개행 처리를 한다는 점이 다르다. 개행이란 우리가 흔히 알고 있는 엔터에 해당하는 작업을 말하며, 다음 줄로 커서를 옮기는 작업을 의미한다. 이를 문자로 표현하면 \n
이라고 한다.
예제를 살펴보면 다음과 같다.
위의 출력에 대한 결과는 다음과 같다.
이는 다음 코드와 동일하다고 볼 수 있다.
일반적으로 출력을 할 때 출력이 완료되면 줄을 바꾸어야 하는 경우가 종종 있는데, 이 때 System.out.print
를 사용하면 번거롭기 때문에 System.out.println
을 사용하여 편리하게 처리하도록 지원하고 있다.
System.out.println
사용 시 값이 없으면 단순 개행을 처리한다. 하지만 System.out.print
처럼 한 개가 넘는 값은 가질 수 없다.
System.out.printf()
자바는 C언어에서 파생된 언어이기 때문에 C언어의 문법과 비슷한 부분이 많다. System.out.printf
도 이 중 하나라고 볼 수 있으며, C계열 언어 사용자들의 편의를 위해서 준비된 명령이라고 볼 수 있다.
실제 사용은 다음과 같이 한다.
출력 결과는 다음과 같다.
형식에 사용되는 문자는 다음과 같으며, 실제로 출력되는 것이 아니라 뒤의 값과 결합될 위치와 형태를 지정하는 역할을 수행한다.
형식
의미
%d
정수 1개가 결합될 자리
%f
실수 1개가 결합될 자리
%s
문자열 1개가 결합될 자리
%c
문자 1개가 결합될 자리
형식이 맞지 않으면 정상적인 출력이 이루어지지 않기 때문에 자료형을 고려하지 않고 모두 출력하는 이전의 명령들보다 불편한 점도 있다. 하지만 문자열이 값과 섞여 있는 경우 편하게 출력이 가능하다.
단, 개행이 자동으로 이루어지지 않으니 주의하도록 한다.
이외에도 자리수 지정, 소수점 제어 등 다양한 기능이 있어 활용도는 높은 편이다. 하지만 순수 자바 명령이라고 보기 어렵기 때문에 이후의 문서에서는 다루지 않는다.
소수점 제어
자리수 제어
자리수를 확보하고 출력할 수 있으며, 정렬 방향은 오른쪽이 +
또는 생략, 왼쪽이 -
이다.
Last updated