「C 語言中非 0 即為真,Java 不是這樣」。
int a = 1;
if (a) { /* 進入分支 */ }
C 允許整型、指針等直接作為條件表達式,非 0 視為真,0 視為假。
int a = 1;
// if (a) { } // 編譯錯誤:Type mismatch: cannot convert from int to boolean
if (a != 0) { } // 必須顯式比較得出 boolean
Java 嚴格要求 if、while 等控制結構的條件必須是 boolean 類型或 Boolean 對象。整數、指針、對象引用均不能直接作為條件。
Java 無指針運算、無無符號類型、數組越界拋異常而非未定義行為,均體現「安全第一」的設計哲學。