2016-05-12 6 views
0

この2つのエラーが発生しています。どうすればそれらを解決できますか?誰かが変数cの短いコードを私に与えることができます。 このJavaコードをコンパイル中に2つのエラーが発生します

enter image description here

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"); 
    } 

はまだ何も動作しないループを起こりません。 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] =テスト[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: "何も起こらない"と "うまくいきません"というのは、本当に問題の説明ではありません。これはデバッガの使い方に慣れる絶好の機会のように思えます。コードが実行されるごとに1行ずつ進んでコードを実行し、システムのランタイム値と動作を調べることができます。これにより、コードがどこで何をしているのか、変数やオブジェクトの値はどうなっているのかを特定することができます。 – David

関連する問題