2012-12-17 51 views
0

請告訴我什麼是代碼這兩個片段的差異:初始化之前或內部在Java

int i = 0; 
for(i; i < test; i++) {...} 

for(int i = 0; i < test; i++) {...} 

有沒有初始化的這些方式有什麼區別i - 增量變量?它是否影響任何事物?

回答

5

區別在於變量i的範圍。

在第一個中,i在for循環之外是可見的,而在第二個中是不可見的。

+0

感謝...我有一個代碼實際上像 「爲(INT I = 0; I <試驗;我++){的System.out.println第(i +」 「);}」,所以變量i應該已經外面所定義的for循環。 – byank

+0

@byank在這種情況下''我'被認爲是* for'for'循環。然而''''在'for'循環的結束括號之後會超出範圍:'for(int i = 0; i Edd

1

萬一你可以在for循環範圍外使用i變量。 萬一你不能這樣做。只能用於循環範圍。

1

在這兩種情況下,變量都被定義一次(沒有明顯的性能或內存問題)。差異在於範圍和表示。第一種情況下i將在for聲明的範圍之外。

例如,如果您想查找某個元素的特定索引(很難確實存在這種方法的更好替代方法),或者您想迭代直到滿足特定條件,然後,知道你的循環停在哪個索引處。

相關問題