我的任务的目标是使用来自另一个列表的礼物生成礼物列表(具有最大金额价格)。最大金额(totalePrijs)不能超过500并且您在该生成的列表中不能多次出现相同的内容。所选择的礼物是使用随机发生器完成的,最高可达27(礼物数量)。
除了相同的礼物不止一次之外,它的效果非常好。我还没弄明白。要么我想要创建一个空的IntegerArray并检查该Array是否包含x,如果它确实应该从while语句的开头重新启动,否则它会将x添加到该数组并继续。
我想到的另一种方法是将if语句改为
if (selectedCadeauModel.contains(present.name) && totalePrijs + present.price < 500)
但是我认为这只是无限循环。
这是单击“生成礼物”按钮时执行的代码。
selectedCadeauModel.clear();
double totalePrijs = 0;
while (totalePrijs < 500) {
NumberGen ran = new NumberGen();
int x = Integer.parseInt(ran.toString());
Cadeau present = (Cadeau) cadeauModel.elementAt(x);
if (totalePrijs + present.price < 500) {
totalePrijs += present.price;
selectedCadeauModel.addElement(new Cadeau(present.name, present.price));
} else {
break;
}
ftxTotaalPrijs.setValue(totalePrijs);
lstGeneratedPresents.setModel(selectedCadeauModel);
ftxGemiddeldePrijs.setValue(totalePrijs / selectedCadeauModel.size());
}
/
public class Cadeau {
String name;
double price;
public Cadeau(String naam, double prijs) {
name = naam;
price = prijs;
}
/
public class NumberGen {
Random randomGenerator = new Random();
int getal = randomGenerator.nextInt(27);
@Override
public String toString() {
return String.format("%d", getal);
}
}