-1
配列内のすべてのデータを合計します。私はそれがここにある、私のクラスからの配列を含んでいませんでした:配列内のデータを集計する - なぜ私のコードが機能していないのですか?
int treffer [] = {0,0,0,0,0};
(配列があるため、別の方法を変更され、完全な方法ここでは(ドイツのコメントをしていますが、メインのアイデアを得る必要があります)
import java.util.stream.*;
public class Schuetze{
int treffer [] = {0,0,0,0,0};
int sum = 0;
public Schuetze(){
}
public void schutze1(){
}
public void schuetze2(){
}
public void trefferEinfuegen(int pTreffer) {
// ich gehe davon aus, dass 1-5 für die Felder übergeben wird.
// hier wird überprüft, ob der Wert im Array überhaupt existiert. Stichwort "array out of bounds"
if(pTreffer < 1 || pTreffer > treffer.length) {
return; // methode beenden ohne aktion. "Nichts zurück geben"
}
pTreffer--; // reduziere Array Index um 1 da ein Array bei 0 anfängt.
treffer[pTreffer]++; // erhöhe den Treffer des übergebenen Feldes.
}
public void datenLiefern()
{
for (int i : treffer)
sum += i;
System.out.println("The sum is " + sum);
}
}
マイコードが機能していません。これは、最初に私に正しい番号を表示しますが、その数×2を取る。
public void datenLiefern()
{
for (int i : treffer)
sum += i;
System.out.println("The sum is " + sum);
}
ここで、合計を0に設定していますか? 'sum'はなぜフィールドでありローカル変数ではないのですか? –
'datenLiefern'を2回呼び出すことは可能でしょうか?とにかく 'sum = 0;' beforeループを追加するだけです。 – talex