Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将If-Else条件添加到数组中_Java_If Statement - Fatal编程技术网

Java 将If-Else条件添加到数组中

Java 将If-Else条件添加到数组中,java,if-statement,Java,If Statement,我正在进行以下程序的isseue 这是全部代码,我最近开始学习编程,这是我的第一个项目,所以我不太擅长缩进和OOP概念。如果你们中的一位专家能把这个程序变成OOP,那对我将是一个很大的帮助 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; class Car { private String make; private String model; pr

我正在进行以下程序的isseue

这是全部代码,我最近开始学习编程,这是我的第一个项目,所以我不太擅长缩进和OOP概念。如果你们中的一位专家能把这个程序变成OOP,那对我将是一个很大的帮助

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;


class Car {
    private String make;
    private String model;
    private String regNo;
    private int deposit;
    private int rate;

    public Car(String newMake, String newModel, String newRegNo,int newDeposit, int newRate) 
    {
            make = newMake;
            model = newModel;
            regNo = newRegNo;
            deposit = newDeposit;
            rate = newRate;
    }



    public String getMake() {
            return make;
    }

    public String getModel() {
            return model;
    }

    public String getRegNo() {
            return regNo;
    }

    public int getDeposit() {
            return deposit;
    }

    public int getRate() {
            return rate;
    }
}

public class carrenta {

public static void main(String[] args) {
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yy  HH:mm");
    Date date = new Date();
    System.out.println(dateFormat.format(date));

List<Car> carlist = new ArrayList();
carlist.add(new Car("Toyota", "corolla", "TA7896", 1500, 1800));
carlist.add(new Car("Toyota", "vitz", "TV9872", 1500, 1800));
carlist.add(new Car("Nissan", "paso", "NP1543", 1500, 1500));
carlist.add(new Car("Honda", "city", "HC4692", 1800, 1800));
carlist.add(new Car("Honda", "civic", "HC4521", 2000, 1600));
carlist.add(new Car("Honda", " accord", "HA5463", 2500, 2000));
carlist.add(new Car("Mitsubishi", "lancer", "ML4521", 2000, 1500));


            Scanner input = new Scanner(System.in);
            boolean modelFound = false;
            while (!modelFound) {
            System.out.print("Enter model to rent: ");
            String model = input.nextLine();

            for(Car s : carlist){
        if (model.equalsIgnoreCase(s.getModel())) {
         modelFound = true;
        System.out.println("Model  " + model + " is available");
        System.out.print("Enter number of days: ");
        int days = input.nextInt();
                        System.out.println("***************Details*****************");
        int cost = (days * s.getRate()) + s.getDeposit();
        System.out.println("Deposit  DailyRate  Duration  TotalCost");
        System.out.println(s.getDeposit() + "       " + s.getRate()+ "            " + days + "        " + cost);
        System.out.print("Proceed to rent?( y/n ): ");

        String dec = input.next();
       switch (dec) {
            case "y":
               System.out.println("Enter Customer Name: ");
                String name = input.next();
                System.out.println("Enter NIC Number: ");
                int num = input.nextInt();
                System.out.println("************Receipt*************");
                System.out.println(     "     Date                               Name           NICNo         Car        RegNo    Duration   TCost");
          System.out.println(date+"           "+name + "          " + num +    "         " + model
                + "   " + s.getRegNo() + "      " + days + "       "+cost);
                break;
            case "n":
                System.out.println("Serving Next Customer: ");
                break;
                }
    }
        else{
                System.out.println("Please enter a valid model");
        }
        }
    }
}
导入java.text.DateFormat;
导入java.text.simpleDataFormat;
导入java.util.*;
班车{
私人字符串制作;
私有字符串模型;
私有字符串regNo;
私人存款;
私人利率;
公共汽车(字符串newMake、字符串newModel、字符串newRegNo、int newDeposit、int newRate)
{
make=newMake;
模型=新模型;
regNo=newRegNo;
存款=新存款;
利率=新利率;
}
公共字符串getMake(){
退货;
}
公共字符串getModel(){
收益模型;
}
公共字符串getRegNo(){
返回regNo;
}
公共存款{
退还保证金;
}
public int getRate(){
回报率;
}
}
公共级卡伦塔酒店{
公共静态void main(字符串[]args){
DateFormat DateFormat=新的SimpleDateFormat(“日/月/年HH:MM”);
日期=新日期();
System.out.println(dateFormat.format(date));
List carlist=new ArrayList();
添加(新车(“丰田”、“花冠”、“TA7896”、1500、1800”);
添加(新车(“丰田”、“维茨”、“TV9872”、1500、1800”);
添加(新车(“日产”、“帕索”、“NP1543”、1500、1500”);
添加(新车(“本田”、“城市”、“HC4692”、1800、1800”);
添加(新车(“本田”、“思域”、“HC4521”、2000、1600”);
添加(新车(“本田”、“雅阁”、“HA5463”、2500、2000));
carlist.add(新车(“三菱”、“兰瑟”、“ML4521”、2000、1500”);
扫描仪输入=新扫描仪(System.in);
布尔modelFound=false;
而(!modelFound){
System.out.print(“输入要租赁的型号:”);
字符串模型=input.nextLine();
适用于(汽车s:carlist){
if(model.equalsIgnoreCase(s.getModel())){
modelFound=true;
System.out.println(“模型”+模型+”可用);
System.out.print(“输入天数:”);
int days=input.nextInt();
System.out.println(“**********************详细信息**********************”);
整数成本=(天*s.getRate())+s.getDeposit();
系统输出打印项次(“存款日期限总成本”);
System.out.println(s.getDeposit()+“”+s.getRate()+“”+days+“”+cost);
系统输出打印(“继续租赁?(y/n):”;
String dec=input.next();
开关(dec){
案例“y”:
System.out.println(“输入客户名称:”);
String name=input.next();
System.out.println(“输入NIC编号:”);
int num=input.nextInt();
System.out.println(“***************收据****************”);
System.out.println(“日期名称NICNo Car RegNo Duration TCost”);
System.out.println(日期+名称+数量+型号
+“+s.getRegNo()+”+天+“+成本);
打破
案例“n”:
System.out.println(“服务下一个客户:”);
打破
}
}
否则{
System.out.println(“请输入有效的模型”);
}
}
}
}

}您可以尝试运行while循环:

boolean modelFound = false;
while (!modelFound) {
   // Ask question, take input
   String model = input.next();
   for (Object object : carList) {
   /* etc ... */
   if (model.equalsIgnoreCase(car.getModel()) {
       modelFound = true;
       /* other code */
   }
}

另外,假设您的CarList使用了一个汽车通用代码:
List CarList
,那么您不需要每次都进行强制转换,只需将for each循环作为
for(Car c:CarList)

运行,因为您的代码组织得不是很好,所以很难判断在哪里。请添加正确的缩进,以便我们能够轻松地找出循环和条件体。然后在问题块周围添加一个
循环
。您已经编写了这个程序,就好像您是用BASIC编写的一样。采用更面向对象的范例。通过使用对象,不仅您的代码更具可读性,而且您的程序也更易于维护和扩展。@Rouge非常感谢您的工作,但似乎还有另一个问题。当我把一个else语句放在最后,它是System.out.println(“请输入一个有效的模型”);它打印上述语句的次数与数组中的值的数量相同。你能用当前使用的代码更新OP吗?我已经更新了程序,请看一看。如果你把它放在for循环中,并且每辆车的型号都是错误的,那么它会说每辆车都是错误的。看看你在比较什么。(我将重新格式化代码并查看)-正如您所看到的,您将获得模型,然后将其与您的汽车列表中的每个值进行比较。但是,当车型类型不相等时,则为每辆车打印(“请输入有效车型”)。我不建议在for循环中编写
else
,而是建议检查modelFound在for循环外但在while循环内是否仍然为false
if(!modelFound){System.out.println(“输入有效模型”);}