알고리즘 문제를 풀거나 다른 언어를 쓰다가 자바로 넘어올 때 가장 먼저 당황하는 부분이 바로 ‘콘솔 출력’이다.

Python은 알아서 줄을 바꿔주는데, Java나 C는 코드를 다닥다닥 붙여서 출력해 버리기 때문이다.

각 언어가 기본적으로 줄바꿈(Enter)과 띄어쓰기(Space)를 어떻게 처리하는지 한눈에 비교해 본다.


1. Java: 메서드로 확실하게 구분 (print vs println)

자바는 출력 명령어 자체를 2가지로 나누어 놓았다. 개발자가 의도한 대로만 정확하게 동작한다.

  • System.out.print()줄바꿈 없이 값만 출력하고 커서는 그 줄에 그대로 머문다.
  • System.out.println(): 값을 출력한 뒤 자동으로 줄바꿈(\n)을 수행한다. (가장 많이 씀)
  • 여러 값을 출력할 때는 콤마(,)가 아니라 + 연산자로 직접 문자열을 엮어야 하며, 띄어쓰기도 " " 형태로 직접 넣어주어야 한다.
System.out.print("Hello "); 
System.out.print("Java");  // 출력: Hello Java (한 줄에 출력)

System.out.println("A"); 
System.out.println("B");   // 출력: A (줄바꿈) B

2. Python: 알아서 띄우고 알아서 줄바꿈

파이썬의 print() 함수는 매우 친절하다. 기본적으로 출력이 끝나면 무조건 줄바꿈을 해버린다. 게다가 여러 값을 콤마(,)로 넘기면, 알아서 값 사이에 띄어쓰기(스페이스)를 한 칸씩 넣어준다.

print("Hello", "Python") # 출력: Hello Python (자동 띄어쓰기 후 줄바꿈)

print("A")
print("B") 
# 출력: 
# A
# B 
# (자동으로 두 줄로 나뉨. 줄바꿈을 막으려면 print("A", end="") 처럼 옵션을 줘야 함)

3. C언어: 완전 수동 제어 (printf)

C언어의 printf()는 자바의 print()와 마찬가지로 기본 줄바꿈이 아예 없다. 다음 줄로 넘기고 싶다면 문자열 끝에 무조건 이스케이프 시퀀스인 \n을 손수 적어주어야 한다.

printf("Hello ");
printf("C\n"); // 출력: Hello C (그리고 줄바꿈)

💡 [핵심 요약 표]

언어 출력 명령어 기본 줄바꿈 (Enter) 다중 값 넘길 때 띄어쓰기 (Space)
Java print()    
println() ❌ 없음    
⭕ 자동 수행 ❌ 없음 (+로 직접 띄어쓰기 결합)    
Python print() ⭕ 자동 수행 (옵션으로 제어) ⭕ 콤마(,) 사용 시 자동 한 칸 띄어쓰기
C printf() ❌ 없음 (\n 필수) ❌ 없음 (문자열 안에 직접 작성)