2016-05-29 11 views
-1

私はforループの前に配列を宣言しましたが、今度はforループの結果を配列に連結したいと思います。以下のコードは動作しません。 "エラー:シンボルを見つけることができません"というエラーが表示されます。は、ループ内のループの結果をjavaに連結します。

私のコードは

for(int j=i; j<=arr.length-1; j++){    

    // checking for condition 
    if (i<j) 
    { 
     int temp = arr[i]+arr[j]; 
     if (temp%sum==0) { 
     System.out.println("Pair with given sum " + 
          sum + " is (" +temp+")"); 
      result[] += temp; 
     } 
    } 
+0

私はfoorループに含めるのを忘れて申し訳ありませんのために 、それはif文 – aditya

+3

'結果[] + = temp'があきらか間違っているだけで前に来ます。この配列は元々どこに宣言されていましたか? – Makoto

+0

result []配列を宣言し、tempを配列のあるインデックスに挿入します。 たとえば、result [i] = tempです。結果配列の最終サイズがわからない場合は、代わりにarraylistを使用できます。 – Gihanmu

答えて

2

あなたのエラーは、

この

result[i] += temp; 

にも注意してくださいのようなものを試してみて、それが値を格納できる場所あなたの配列のインデックスを提供する必要があり、ここで

result[] += temp; 

です異なるtempの値を持つ配列が作成されることになります。その後、

プラスあなたforループの中で、あなたがj=iをやっていると

if(i<j)

をチェックするだからあなたのループは初めて以来、条件が偽になり、1回の反復の後に実行されます。

tempと値の数だけを出力する必要がない場合、配列はまったく必要ありません。

あなたは、単に変数

int count=0;

を作成し、この

if (temp%sum==0) { 
     System.out.println("Pair with given sum " + 
          sum + " is (" +temp+")"); 
      count++; 
     } 

そして、印刷回数のようなものにループのためにあなたを変更することができます。

配列を使用することが必須である場合、あなたは

result.length

ような配列の長さ希望を印刷することができ、これは役立ちます:)あなたが作成think.When

+0

こんにちは@aradhana助けてくれてありがとう、しかし、私は配列のすべての一時的な値を追加する必要があるので、私はその配列のカウントを印刷することができます – aditya

+0

あなたはあなたが(追加しないで)少なくとも配列に格納されている項目の数を出力したいのですか? – Aradhna

+0

はい私は配列に数値を格納して保存するにはtemp値を格納したい – aditya

0

あなたのコードは次のようになり..ですループ内で結果の指標に言及し、使用する前にそれを宣言する。 click hereそのエラーが発生する理由を確認してください。

あなたはint iの値を提供できますか?そうすれば、私たちはあなたのループを手助けすることができます。

int result = new int[100] //give value according to your program. 
for(int j=i; j<=arr.length-1; j++){    
// checking for condition 
if (i<j) 
{ 
    int temp = arr[i]+arr[j]; 
    if (temp%sum==0) { 
    System.out.println("Pair with given sum " + 
         sum + " is (" +temp+")"); 
     result[j] += temp; 
    } 
} ` 
+0

これはまだ私に "エラー:記号 int result = new result [100];を見つけることができません"というエラーを表示します。 – aditya

+0

私は私の答えを編集して、もう一度試してみてください。 – yash

+0

申し訳ありませんが、私はループによって保存された要素のインデックスのみが必要です。あなたが書いたコードはインデックスを増やすだけです。 – aditya

0

配列は、おそらくあなたのように動作しません。この

int x[10] = new int[10]; 

のような配列あなたは、このような配列の要素にアクセスすることができます。 をたとえば、あなたがしたい場合1番目の要素x[0]は2番目のx[1]です(0から配列の長さ-1までカウントするstatrt)。だから、ここで何を行っている:

result[] += temp; 

はsense.Youは常にあなたがしたいアクセス(おそらく result[index] += temp;ような何かをしたい)要素のインデックスを指定souldことはありません。

私は助けて欲しい。

+0

ループは最初の反復では機能しません。これは私が望むものです – aditya

+0

ああうまく動かないようにしたいと思ったら、その部分を削除します。 – theVoid

0

あなたのエラーは、あなたが結果を連結したい配列のインデックスを言及する必要があるライン

result[] += temp; 

です。例えば

//your code goes here 
..... 
for (int k = index_of_resultArray_to concatenate; k < result.length; k++) { 
    result[k] += temp; 
} 
関連する問題