import java.util.Scanner;
public class Za {
private static final double sum = 0;
public static void main(String[] args) {
int score[]=new int[5];
int sum=0;
for (int i = 0; i < score.length; i++) {
System.out.println("請輸入成績:");
Scanner input = new Scanner(System.in);
score[i] = input.nextInt();
sum=sum+score[i];
}
System.out.println("平均分為:"+sum/5.0);
}
}
為什麼上面那個int sum=0放在for(;;)裡面就會出錯,有什麼不同嗎?for(int i ,sum=0;~;~)
更多 0
是變量的作用域的問題,在for循環的開始條件裡聲明的變量只能在for循環裡用的,也即是說你的代碼相當於:
for( ;condition ; i++)
{
int i,sum=0;
}
system.out.peintln("...."+sum/len);
一個是sum的作用域的問題,就是出了循環就不能再用sum了,因為一出作用域就被java的垃圾回收器給回收了,之後就找不到sum了,就會報錯,
第二,你的i如果是第二種寫法是沒有初始化的,但的確,i默認為0,應該編譯器應該是不會提示你這個問題的說。
你的最後一句可如此處理
for(....)
{
......;
if(i==score.length-1)
system.out.println("平均分為:"+sum/5.0);
}
就可以了