【发布时间】:2020-04-25 16:57:29
【问题描述】:
代码应该从用户那里获得所需的卧室、浴室和租金,并向他展示满足他们需求的公寓。该代码正在运行,但它会询问 5 次问题而不是一次,并且只提供当时每间公寓的信息。例如,如果我想要一个三房两卫的公寓,租金300,它只会再问第二次,而不会显示错误消息“公寓号”+ aptNumber+“不适合您的需求。”
我只希望它工作一次,询问一次,然后列出每间合适的公寓。如果有人有任何想法,请帮忙!
import java.util.Scanner;
public class Apartment
{
private int aptNumber;
private int bedrooms;
private int baths;
private double rent;
public int getAptNumber()
{
return aptNumber;
}
public int getBedrooms()
{
return bedrooms;
}
public int getBaths()
{
return baths;
}
public double getRent()
{
return rent;
}
public Apartment(int num, int bed, int bath, double ren)
{
aptNumber = num;
bedrooms = bed;
baths = bath;
rent = ren;
}
public Apartment(int num, int bed, int bath)
{
this(num, bed, bath, 300);
}
public Apartment(int num, int bed)
{
this(num, bed, 2);
}
public Apartment(int num)
{
this(num, 2);
}
public void display()
{
int minbeds;
int minbaths;
double maxrent;
Scanner input = new Scanner(System.in);
System.out.print("Please enter: least amount of bedrooms >> ");
minbeds = input.nextInt();
System.out.print("Please enter: least amount of bathrooms >> ");
minbaths = input.nextInt();
System.out.print("Please enter: maximum amount of rent >> ");
maxrent = input.nextDouble();
if(minbeds <= bedrooms) {
if(minbaths <= baths) {
if(maxrent >= rent) {
System.out.println("Apartment number " + aptNumber + " has " + bedrooms +
" bedrooms, " + baths + " bathrooms and the rent is " + rent);
}
}
}
else if (minbeds > bedrooms) {
System.out.println("Apartment number " + aptNumber + " isn't suitable for your needs.");
}
else if (minbaths > baths) {
System.out.println("Apartment number " + aptNumber + " isn't suitable for your needs.");
}
else if (maxrent < rent) {
System.out.println("Apartment number " + aptNumber + " isn't suitable for your needs.");
}
}
}
public class ApartmentProperties
{
public static void main(String[] args)
{
Apartment first = new Apartment(1);
Apartment second = new Apartment(2, 2);
Apartment third = new Apartment(3, 3, 2, 400);
Apartment fourth = new Apartment(4, 1, 1, 250);
Apartment fifth = new Apartment(5, 1, 1, 200);
first.display();
second.display();
third.display();
fourth.display();
fifth.display();
}
}
【问题讨论】:
-
将
display设为静态方法,并将Apartment 对象数组作为参数 -
不要每次都制作新的扫描仪。将 Scanner 作为参数传入
标签: java constructor