請告訴我什麼是代碼這兩個片段的差異:初始化之前或內部在Java
int i = 0;
for(i; i < test; i++) {...}
和
for(int i = 0; i < test; i++) {...}
有沒有初始化的這些方式有什麼區別i
- 增量變量?它是否影響任何事物?
請告訴我什麼是代碼這兩個片段的差異:初始化之前或內部在Java
int i = 0;
for(i; i < test; i++) {...}
和
for(int i = 0; i < test; i++) {...}
有沒有初始化的這些方式有什麼區別i
- 增量變量?它是否影響任何事物?
The second one is idiomatic。第一個不是,因此違反了the principle of least astonishment。
如果您需要在for
循環之前或之後訪問i
,請僅使用第二個循環。但是,在這段代碼中,我沒有看到任何暗示是這樣的情況。
區別在於變量i
的範圍。
在第一個中,i
在for循環之外是可見的,而在第二個中是不可見的。
萬一你可以在for循環範圍外使用i變量。 萬一你不能這樣做。只能用於循環範圍。
在這兩種情況下,變量都被定義一次(沒有明顯的性能或內存問題)。差異在於範圍和表示。第一種情況下i
將在for
聲明的範圍之外。
例如,如果您想查找某個元素的特定索引(很難確實存在這種方法的更好替代方法),或者您想迭代直到滿足特定條件,然後,知道你的循環停在哪個索引處。
感謝...我有一個代碼實際上像 「爲(INT I = 0; I <試驗;我++){的System.out.println第(i +」 「);}」,所以變量i應該已經外面所定義的for循環。 – byank
@byank在這種情況下''我'被認爲是* for'for'循環。然而''''在'for'循環的結束括號之後會超出範圍:'for(int i = 0; i
Edd