別のクラスの変数をこちらのクラスのリストに追加していくのですが、指定の重さに達するとリストへの追加しないようにしたいのですが、pu、blic void addTavaraメソッドで間違ってますでしょうか。今の状態ですと、重さを超えてもすべて追加されます。
import java.util.ArrayList; public class Matkalaukku { private final int maksimipaino; private final ArrayList<Tavara> tavarat; public Matkalaukku(int maksimipaino){ this.maksimipaino = maksimipaino; this.tavarat = new ArrayList<>(); } public void addTavara(Tavara tavara){ while(true){ int omosa = 0; omosa = omosa + tavara.getPaino(); if(omosa <= this.maksimipaino){//ここで追加されるのはthis.maksimipaino this.tavarat.add(tavara);//以下にしたつもりですが、すべて追加されます。 break< } } } @Override public String toString(){ if(this.tavarat.isEmpty()){ return "ei tavaroita (0 kg)"; } int count = 0; int omosa = 0; for (Tavara tavara: tavarat) { count++; omosa = omosa + tavara.getPaino(); } return count +" tavaraa ("+omosa+"kg)"; } } --- public class Tavara { private String nimi; private int paino; public Tavara(String nimi, int paino){ this.nimi = nimi; this.paino = paino; } public String getNimi(){ return this.nimi; } public int getPaino(){ return this.paino; } public String toString(){ return this.nimi+ "("+this.paino+"kg)"; } } --- public class Main { public static void main(String[] args) { Tavara kirja = new Tavara("Aapiskukko", 2); Tavara puhelin = new Tavara("Nokia 3210", 1); Tavara tiiliskivi = new Tavara("tiiliskivi", 4); Matkalaukku matkalaukku = new Matkalaukku(5); System.out.println(matkalaukku); matkalaukku.lisaaTavara(kirja); System.out.println(matkalaukku); matkalaukku.lisaaTavara(puhelin); System.out.println(matkalaukku); matkalaukku.lisaaTavara(tiiliskivi); System.out.println(matkalaukku); } }
まずコンパイルが通るコードを書いてください。
回答2件
あなたの回答
tips
プレビュー