2017-11-01 11 views
1
public static String zoekAlleOplossingen(int a,int b,int c,int d,int begingrens,int eindgrens) 
{ 
    for(int x=begingrens;x<=eindgrens;x++) 
     for(int y =begingrens;x<=eindgrens;y++) 
      for(int z = begingrens;z<=eindgrens;z++) 
       if(a*x + b*y + c*z == d){ 

        System.out.printf("%d*%d + %d*%d + %d*%d = %d%n",a,x,b,y,c,z,d); 
        oplossingen = "" + String.format("%d*%d + %d*%d + %d*%d = %d%n",a,x,b,y,c,z,d); 
       } 
    return oplossingen; 


} 

forlusで計算した文字列の一部を変数oplossingenに追加する方法が見つかりません。私はそれが私の方法は静的だからだと思うが、私の練習ではこのメソッドを静的なものとして使う必要がある。 これを総括すると、私の質問は次のようになります。 最終的なメソッドの変数に計算したStringの部分を追加するにはどうすればよいですか?メソッドが静的である場合に計算された値を文字列に追加する方法

+4

変数はどこで宣言しましたか? – Thilo

+0

'zoekAlleOplossingen'関数呼び出しを表示できますか? – dehasi

答えて

0

静的または静的ではない:明らかに、複数の分割で文字列を計算し、その文字列を返します。あなたの方法には「最終的なもの」はありません。

私はStringBuilderを使用することが最良の選択肢だと思います。 Stringに追加

StringBuilder sb = new StringBuilder(); 

... 
sb.append(String.format("%d*%d + %d*%d + %d*%d = %d%n",a,x,b,y,c,z,d)); 
... 

return sb.toString(); 

String s = ""; 
... 
    s += String.format(...); 

に従って行われるが、これはあまり効率的です。ここで、String変数はfinalであってはなりません。

静的メソッドzoekAlleOplossingenは、その静的メソッドのすべての呼び出しからすべての計算されたソリューションを集める必要がある場合は、包含クラス内に静的変数が必要です。これは、ここに示すパターンに従って、StringまたはStringBuilderになります。しかし、この場合、zoekAlleOplossingenを返すと、1回の呼び出しの結果が多分余計になります。

関連する問題