<= length 導致數組越界新手寫 for(int n=0; n<=arra.length; n++) 遍歷數組,運行拋出 ArrayIndexOutOfBoundsException。原因極其簡單:有效索引最大為 length-1。
int[] arra = {67,56,324,59,3,56,6};
Arrays.sort(arra);
for(int n=0; n<=arra.length; n++) // 錯誤:n 最大取 7,arra[7] 不存在
System.out.print(arra[n]);
for(int n=0; n < arra.length; n++) // 嚴格小於
System.out.print(arra[n] + " "); // 加空格分隔可讀性更好
// 或增強 for 循環 (Java 5+)
for(int v : arra)
System.out.print(v + " ");
Java 數組訪問屬於運行時檢查,編譯器無法靜態推導循環變量範圍。這也是單元測試、靜態分析工具(SpotBugs、SonarQube)存在的意義。
n < length 肌肉記憶,n <= length-1 同理。Arrays.stream(arra).forEach(System.out::print);n 與 arra.length 的瞬間值。一個分號之差,從「跑不通」到「順暢輸出」。