간단한 시스템까지 코드를 작성하고 있습니다. 현재 야채는 ArrayList
입니다. 야채는 매개 변수로 이름과 가격 만 있습니다.자바에서 두 가지 제안을 할 때를 식별하는 방법
vegList.add(new Vegetable("Aubergine", 1.50));
vegList.add(new Vegetable("Tomato", 1));
vegList.add(new Vegetable("Cucumber", 0));
현재는 세 Aubegines 한 토마토 내 쇼핑 카트에 있습니다.
나는 트롤리에서 야채의 이름을 확인한 다음 가격을 반환하는 방법이 있지만 내 문제는 ... 나는 Aubergines가 3 개 있고 Aubergines가 £ 1에 대해 2라고 들었다.
내 수량 변수가 2에 도달하면 가격 매개 변수를 1로 변경 한 다음 Aubergines를 추가 할 때 £ 1.50에서 계속 2의 배수 (이 경우에는 4)가 될 때까지 계속한다고 말하면서 방법을 수정할 수 있습니까? .
public double getVegetablePrice(String name) {
// Iterate through ArrayList
// Get current index
// Get Fruit name
// Get price based on Fruit name
// return price of Fruit
double price = 0;
double count = 0;
double quantity = 0;
for(int i = 0; i < vegList.size(); i++){
Vegetable tempVeg = vegList.get(i);
if(tempVeg.getName() == name){
if(name.equals("Tomato")) {
count = tempVeg.getPrice();
price += (count * 1.0); //£1 per kg
}
else if(name.equals("Aubergine")) {
quantity++; //ADD TO QUANTITY
if(quantity == 2) {
price = 1.0;
}
else {
price = tempVeg.getPrice();
}
}
}
else{
// do nothing
}
}
return price;
}
내가 현재 £ 5.50의 총
assertTrue(vegTotal == 3.50)
얻고 것 JUnit 테스트를 위해 이것을 쓰고 있습니다 ... 아래 코드를 참조하십시오.
그래서 £ 1.50에 대해 £ 1 또는 £ 2를 얻을 수 있습니까? 두 개를 사면 둘 다 먹어야합니까? –
구아바의 ['MultiSet'] (http://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained) 중 하나가 계산에 도움이됩니다. – zapl