print():輸出後光標停留在末尾,不換行。
println():輸出後自動追加換行符,光標移至下一行行首。
for (int i = 1; i < 6; i++) {
System.out.println(i); // 每個數字佔一行
}
輸出:
1 2 3 4 5
for (int i = 1; i < 6; i++) {
System.out.print(i); // 連續輸出
}
輸出:
12345
ln = line 去元音 → 換行。
print 只有「打印」動作,無「換行」動作。
// PrintStream.java 簡化源碼
public void println(String x) {
synchronized (this) {
print(x);
newLine(); // 關鍵:調用 newLine() 輸出系統相關換行符
}
}
private void newLine() {
try {
write(lineSeparator()); // Windows: \r\n, Linux/Mac: \n
} catch (IOException e) {
setError();
}
}
println() 實質是 print() + newLine() 的原子操作(含同步鎖)。
println() 或 printf("%n")print()System.lineSeparator() 或 %n