2016-11-22 32 views
0

爲什麼這段代碼的輸出只有十行0.0以及如何改變它?擴展線程工作不正常,Java測試中的簡單練習

public class Staszeskitest extends Thread 
{ 

    static double res[] = new double[10]; 
    int idx; 

    Staszeskitest(int idx) 
    { 
     this.idx = idx; 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) 
    { 
     for(int i = 0; i < 10; i++) 
     { 
      new Staszeskitest(i).start(); 
      System.out.println(res[i]); 
     } 
    } 

    public void run() 
    { 
     res[idx] = 1; 
     for(int i = 0; i < 100; i++) 
     { 
      res[idx] -= (.01 * idx) * res[idx]; 
     } 
    } 

} 
+1

如果我們通過考試,我們會贏得什麼? –

+0

它不適合我,這是我的朋友即將被驅逐 – foxale

回答

0
res[idx] -= (.01 * idx) * res[idx]; 

在開始,你必須初始化的res[idx]陣列。該數組中每個元素的默認值爲0.0,在上面給出的語句中,您將res[idx](.01 * idx)相乘,因此它將始終返回0.0。