我的第一個問題,我是一個初學者。循環內部的Java變量
請參考下面的代碼,我試着定義j兩次,java編譯器給我一個錯誤,我完全理解。
我在這裏的問題是,如果我不能定義一個變量兩次,爲什麼在循環內「char c = ...」工作。從邏輯上講,當循環體第一次執行時,定義了char c變量,當循環體第二次執行時,由於已經定義了char c,它應該拋出一個錯誤,但是它沒有。爲什麼?
public class test{
public static void main(String[] args){
int j=1;
for (int i=0; i<10; ++i){
char c = (char)(Math.random()*26+97);
System.out.println(i+1+" = "+c);
}
int j=2;
}
}
感謝
你'焦炭C'已其範圍僅限於該循環的_current_迭代,並且將在後面駁回。在這種情況下沒有重複的聲明。 – Berger
您在* compile *時間聲明變量。代碼執行的頻率無關緊要。 –
你也可以在循環內聲明你的變量爲'final'。這些聲明只是在塊內部生存,也就是說,每次迭代都必須重新創建它們... –