我目前正在將setHousePrice()方法應用於較大的OOP項目。但是,該程序沒有按照我的預期行事。所有的值都存儲在變量housePrice中,但在我看來,每次存儲新值都會覆蓋之前的值。將多個值存儲到變量中(不使用集合或數組)
我的問題是,我該如何修改代碼以將多個房價存儲到一個變量中(如果可能的話)?有沒有辦法做到這一點,而不使用數組或集合?
下面是類代碼:
import java.util.Scanner;
public class BuyAHouseInc2
{
private int houseCounter;
private int amountOfHouses;
private int housePrice;
// method that sets the house price
public void setHousePrice()
{
System.out.println("\n--------------------");
System.out.println("Set House Prices");
System.out.println("--------------------");
houseCounter = 1;
do
{
System.out.print("\nPlease enter the price of house " + houseCounter + ": " + "€");
Scanner input = new Scanner(System.in);
housePrice = input.nextInt();
if(housePrice > 0)
{
this.housePrice = housePrice;
houseCounter++;
}
else
{
System.out.println("Enter a valid house price...");
}
}
while(houseCounter <= amountOfHouses);
}
}
這是測試代碼:
public class BuyAHouseIncTester2
{
public static void main(String args[])
{
// client 1 details
BuyAHouseInc2 client1 = new BuyAHouseInc2 ("John","Doyle","15 Newton Drive\nDublin 5\n", 550000)
// set house price for each of the houses added to database
client1.setHousePrice();
}
}
這是它在終端運行:
哪裏if語句?只留下適當的代碼。 –
當然,它會覆蓋以前的值。你爲什麼在你的程序中使用'<='? –
@YassinHajaj我使用<=運算符來允許用戶繼續輸入房價,直到數據庫中的所有房屋都被賦予價值。即在程序代碼的前一部分(我排除它是因爲它與我的問題的一部分不相關),它詢問有多少房屋待售。用戶輸入x個房屋。在我的例子中,我添加了2個房屋。但是,我的問題是housePrice的最新值會覆蓋以前輸入的值。這是我的位置,發現它有點棘手。 – Konahrik16