2016-05-12 85 views
0

所以我得到了這兩個錯誤。我該如何解決它們?還有一件事是任何人都可以給我變量c的短代碼。編譯此java代碼時出現兩個錯誤

double bucky[]= {7.8,5.9,4.1}; 
    double test[]= {0,0,0}; 

    for(int counter=0;counter<bucky.length;counter++){ 
     double c=(12-(test[0]*bucky[0]+test[1]*bucky[1]+test[2]*bucky[2]))/bucky[counter]; 

     int x= (int) c; 
     test[counter]=x; 
     System.out.println(test[counter]); 

    } 

     double summation=test[0]*bucky[0]+test[1]*bucky[1]+test[2]*bucky[2]; 

     double loss=12-summation; 
     System.out.println("Loss is "+ loss); 

int level=2; 
if(test[level]>0){ 
    for(int jass=0;jass<(1-level);jass++){ 
     double test2[]; 
     double test2[jass]=test[jass]; 
     System.out.println("level after "+ test2[jass]); 
    } 

} 
else{ 
     System.out.println("not less"); 
    } 

enter image description here

仍然沒有發生循環不起作用。 double bucky [] = {50,40,30,20}; double test [] = {0,0,0,0};

for(int counter=0;counter<bucky.length;counter++){ 
     double c=(130-(test[0]*bucky[0]+test[1]*bucky[1]+test[2]*bucky[2]+test[3]*bucky[3]))/bucky[counter]; 

     int x= (int) c; 
     test[counter]=x; 
     System.out.println(test[counter]); 

    } 

     double summation=test[0]*bucky[0]+test[1]*bucky[1]+test[2]*bucky[2]+test[3]*bucky[3]; 

     double loss=130-summation; 
     System.out.println("Loss is "+ loss); 

int level=2; 
if(test[level]>0){ 
    double test2[] = new double[test.length]; 
    for(int jass=0;jass<(1-level);jass++){ 

     test2[jass]=test[jass]; 
     System.out.println("level after "+ test2[jass]); 
    } 

} 
else{ 
     System.out.println("not less"); 
    } 
+1

那麼你的語法錯了。重新閱讀如何在Java中聲明和引用數組。 – Kon

+0

試着解釋你在這裏做什麼'double test2 []; double test2 [jass] = test [jass];'。 – Pshemo

+0

該循環中的邏輯對我來說沒有意義。爲什麼你首先聲明一個數組?該循環所做的就是打印出值。所以只需打印它們。根本不需要那個'test2'數組。 – David

回答

1

來聲明和使用數組會是這樣的語法:

double[] test2 = new double[someLengthValue]; 
test2[someIndex] = someValue; 

但是,整個事情是一種毫無意義的,真的。在循環中,每次迭代都重新聲明一個新數組,並嘗試在該數組中設置單個值。然後你所做的就是打印這個值。你根本不需要這個陣列:

for(int jass=0;jass<(1-level);jass++){ 
    System.out.println("level after "+ test[jass]); 
} 
+0

謝謝你的回答,但仍然有一些問題你可以檢查後編輯。 –

+0

@DeepHypnosis:「沒有任何反應」和「不起作用」並不真正有助於描述問題。這聽起來像是瞭解使用調試器的好機會。您可以逐行執行代碼,執行代碼並檢查系統的運行時值和行爲。這將允許你明確地識別代碼在做什麼你不指望它做什麼,以及變量和對象的值是什麼時候發生的。 – David