Если, иначе, если проблемы с циклом - PullRequest
0 голосов
/ 06 февраля 2020

так что я только заканчиваю свой первый урок компьютерного программирования и у меня возникают проблемы с моим основным методом. У меня есть 2 класса. Первый класс - homeClass. java, а другой класс - homeInventory. java. Я просто собираюсь показать вам некоторые из моего homeInventory. java класса, если вы не умнее, чел, чувствуете, что разумно иметь другой мой класс. По сути, у меня проблема с другими утверждениями if. Программа запускается с оператором if, но не будет полностью проходить через другие опции (иначе, если). Я, должно быть, упускаю что-то довольно очевидное, но я просто посмотрю, что вы скажете по этому поводу. Заранее спасибо!

public static void main(String[] args) {
        ArrayList<homeClass> homes = new ArrayList<>();
        Scanner scnr = new Scanner(System.in);

        int i = 0;
        int j = 0;
        String option = "";
        String answer = "";
        String statusAnswer = "";


        do {
            System.out.println("Menu:");
            System.out.println("1. Add a new home.");
            System.out.println("2. Remove a home.");
            System.out.println("3. Update home sale status.");
            System.out.println("4. Exit");
            System.out.print("Option chosen: ");
        try {
            while(true) {
                if(scnr.hasNext()) {
                    option = scnr.next();
                break;
                }
            }
        }
        catch (NoSuchElementException NSEE) {
            continue;
        }
        catch (Exception excpt) {
            excpt.printStackTrace();
            System.out.print("Error, non-integer");
        break;
        }
            try {           
                    if(option.equals("1")) {
                        homes.add(addHome(scnr));
                        System.out.println("Home added.");
                        homes.get(i).getListing();
                    break;
                    }
                    else if (option.equals("2")) {
                        for(j = 0; j < homes.size(); ++j) {
                            homes.get(i).getListing();
                            System.out.print("Remove this listing? Y or N: ");
                            answer = scnr.next();
                            if (answer.equalsIgnoreCase("Y")) {
                                homes.get(i).removeListing();
                                System.out.println("Home removed.");
                            }
                            else if (!answer.equalsIgnoreCase("Y")) {
                                System.out.println("Home not removed. Choose next option.");
                            }
                        }
                    break;
                    }
                    else if (option.equals("3")) {
                        for(j = 0; j < homes.size(); ++j) {
                            homes.get(i).getListing();
                            System.out.print("Do you want to change the sale status? Y or N: ");
                            answer = scnr.next();
                            if (answer.equalsIgnoreCase("Y")) {
                                System.out.println("Enter home sale status: ");
                                    statusAnswer = scnr.next();
                                    homes.get(i).setSaleStatus(statusAnswer);
                                    homes.get(i).getListing();
                            }   
                        }
                    break;
                    }
            }
            catch (Exception excpt) {
                excpt.printStackTrace();
                System.out.println("Error, option failed.");
            }
        } while(!option.equals("4"));


        System.out.print("Do you want the home information stored in a file? Y or N: ");
            answer = scnr.next();

            String outputFileName = "C:\\Temporary\\Home.txt";

            for (j = 0; j < homes.size(); ++j) {
                String listing = homes.get(i).getListing();
                if (answer.equalsIgnoreCase("Y")) {
                    try {
                        printToFile(listing, outputFileName);
                    } 
                    catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } 
                    catch (IOException e) {
                        e.printStackTrace();
                    }
                    System.out.println("File printed to: " + outputFileName);
                }
                else {
                    System.out.println("File not printed.");
                }
            }

        scnr.close();
        return;

    }
}



...