본문 바로가기

프로그래밍/Java 프로그래밍

자바의 변수와 시스템 입출력

자바에서 모니터에 출력하기 위해서 다음과 같은 코드를 사용합니다.

System.out.println("출력내용");;

System.out은 시스템의 표준 출력 장치를 말합니다. out이 표준 출력장치라면 표준 입력장치는 다음과 같이 System.in을 사용합니다.

System.in.read();


표준 출력은 out이고 표준입력은 in입니다.

표준입출력이라고 하면 키보드와 모니터를 말합니다.



모니터로 변수값 출력하기


이제까지 표준출력장치인 모니터로 출력하기 위해 System.out.println() 메소드를 이용했습니다. println()메소드는 괄호안에 있는 리터럴이나 변수를 출력합니다. println()에서 ln은 line의 줄임말로 행을 바꾸라는 의미입니다. 출력장치 out은 다음과 같이 println() 이외에 print(), printf()메소드를 제공합니다.



메소드 

의미 

println(내용); 

괄호 안의 내용을 출력하고 행을 바꿔라 

print(내용);

괄호안의 내용을 출력만 해라 

printf("형식문자열", 값1, 값2, ...); 

괄호 안의 첫번째 문자열 형식대로 내용을 출력해라 


printf() 메소드는 형식화된 문자열을 출력할 수 있습니다. printf() 메소드의 괄호에는 출력 형식 문자열과 제공될 값을 쉼표로 나열해주면 됩니다.

자주 사용되는 형식 문자열은 다음과 같습니다.


형식화된 문자열

 설명

출력 형태 

정수 

%d

%6d

%-6d

%06d 

정수

6자리 정수, 왼쪽 빈자리 공백

6자리 정수, 오른쪽 빈자리 공백

6자리 정수, 왼쪽 빈자리 0채움

123

___123

123___

000123 

실수 

%10.2f

%-10.2f

%010.2f

소수점 이상 7자리, 소수점 이하 2자리, 왼쪽 빈자리 공백

소수점 이상 7자리, 소수점 이하 2자리, 오른쪽 빈자리 공백

소수점 이상 7자리, 소수점 이하 2자리, 왼쪽 빈자리 0채움 

____123.45
123.45____
0000123.45 

문자열 

%s

%6s

%-6s

문자열

6자리 문자열, 왼쪽 빈자리 공백

6자리 문자열, 오른쪽 빈자리 공백

abc
___abc
abc___ 

특수

문자 

\t

\n

%% 

탭(tab)

줄 바꿈





다음 예제를 통해 사용방법을 알아보겠습니다.



위의 예제같이 printf() 메소드를 사용할 수 있습니다. 맨 마지막에 '\n'를 사용해서 다음라인으로 옮기도록 했습니다. '\n'를 사용하지 않는다면 다음라인으로 이동하지 않고 다음문자가 이어서 나옵니다.



키보드에서 입력된 내용을 변수에 저장하기

키보드에서 키 하나를 입력하면 프로그램에서는 숫자로 키코드를 읽을 수 있습니다. 예를 들어 알파벳 a를 입력하면 97번을, 숫자 1을 입력하면 49번을 읽을 수 있습니다.


키코드를 읽기 위해서는 System.in의 read()를 이용하면 됩니다. 알파벳 a의 ASCII 코드값이 97입니다. 다음의 예제를 통해 살펴보도록 하겠습니다.




위의 예제에서 알파벳 a와 엔터를 입력했습니다. 알파벳 a만 입력했다고 생각하지만 실제로 엔터값은 키코드 13과 10으로 이루어졌습니다. 이는 특수문자로 '\r', '\n'입니다. System.in.read()의 단점은 키코드를 하나씩 읽기 때문에 2개 이상의 키가 조합된 한글을 읽을 수 없다는 것입니다. 그리고 키보드로부터 입력된 내용을 통 문자열로 읽지 못합니다. 이러한 단점을 보관하기 위해 자바는 Scanner 클래스를 제공하고 있습니다. 다음 예제를 통해 Scanner의 사용법을 알아보도록 하겠습니다.



여기서는 아직 배우지 않은 while문장이나 if문장이 있습니다. 그것들은 나중에 배우겠지만 간단히 프로그램을 설명하면 키보드로 부터 값을 입력받고 입력된 문자열을 출력하는 것입니다. while과 if문장을 사용하면 q를 입력할 때까지 계속 반복하여 입력을 받고 출력을 합니다.

inputData.equals()는 String 타입에서 값을 비교할 때 사용하는 메소드입니다.