본문 바로가기

Develop/JAVA

[JAVA] 자바스터디 : System.out.println 활용


※ 자바공부를 시작하면서 배우는 하나하나를 부족하더라도 정리해 업데이트 해보고자 한다. 개념상 일부 오류가 있을 수도 있고, 소스코드를 봤을 때 부족하거나 좀더 좋은 형태가 있을 수 있으니 참고만 바란다.


1. System.out.print와 System.out.println의 차이는 줄바꿈을 하느냐 안하느냐이다. 예를 들어, System.out.print(7); 이라고 입력하면 7이 출력되고 커서는 그 옆에서 머물지만, System.out.println(7); 이라고 입력하면 7이 출력되고 커서는 다음줄로 내려가 있다.


2. System.out.println의 ( )괄호 안에 정수,실수,변수,문자열을 넣으면 그에 맞게 출력된다. 재밌는 것은 같은 ( ) 괄호 안에 정수와 문자열이 함께 있으면 통째로 문자열, 정수/실수 2개 이상을 산술연산자와 함께 넣으면 연산을 해 결과를 출력한다는 것이다.


3-1. System.out.println 의 구조를 파헤쳐보면, System은 java.lang 패키지에 속하는 클래스다. 무슨 말이냐면, java.lang 패키지는 모든 프로그램에서 자동적으로 import된다. 즉, 따로 import를 명시해줄 필요가 없다는 것이다. 그리고 java.lang에는 자바 프로그램에 기초가 되는 클래스와 인터페이스를 포함하고 있다. (예를 들어, java.util.* 패키지는 소스코드에서 import java.util.* 로 명시해줘야 한다. ex : import java.util.Scanner, Scanner클래스 사용을 위한 import)

3-2. out은 콘솔객체, printfln()은 문자열을 출력하는 메소드이다. 아무렇지 않은 출력문 같지만 이런 구조라는 것을 당장은 아니더라도 이해할 필요가 있다.


4. 다양한 형태로 System.out.println을 활용해보았다. (선언한 변수를 넣는 것은 제외)

class Print
{
	public static void main(String[] args)
	{
		System.out.println(7);
		System.out.println(3.14);
		System.out.println("6+7=" + 6 + 7);
		System.out.println("6+7=" + (6 + 7));
		System.out.println(7 + "은 정수입니다.");
		System.out.println("9-2" + "의 결과는 7입니다");
		System.out.println(10+5);
		System.out.println(11%10);
	}
}

5행 : 정수 7을 출력 ("7"를 입력해도 7이 출력되지만, 이 때는 문자열로서 7이 출력된다)

6행 : 실수 3.14를 출력 ("3.14"를 입력해도 7이 출력되지만, 이 때는 문자열로서 3.14가 출력된다)

10행 : 문자열 "9-2"와 문자열 "의 결과는 7입니다"를 함께 출력

11행 : 10+5의 합인 정수 15를 출력

12행 : 11을 10으로 나눴을 때 남는 나머지 값 정수 1을 반환


위에서 일부러 제외한 7~9행이 주목할 부분인데, 7,9행은 정수+문자열 혹은 문자열+정수 구조를 가지고 있다. 이 경우, 정수가 문자열로 치환되어 합쳐지게 되는데 이런 작용 때문에, 7행처럼 문자열 "6+7"과 정수 6 + 7이 문자열 "6+7 = 67"이라는 결과로 출력되는 것이다.

하지만 8행처럼 정수의 사칙연산을 ( ) 괄호로 묶어줌으로써 우선순위를 높여 사칙연산을 먼저 진행해 그 결과값을 문자열 "6+7"과 합쳐지게 된다.