2016-05-12 58 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