循环突然结束,Java不保存对象?

循环突然结束,Java不保存对象?,java,class,loops,methods,constructor,Java,Class,Loops,Methods,Constructor,所以我的代码有一个问题,我的循环在我的“C”案例之后结束。我需要它打印出一条消息,说商店已满,并保持循环备份和打印出主菜单。此外,当我在添加新宠物后列出所有宠物时,我的宠物3不会被保存。我的 import java.util.*; public class MainPets { static Scanner scan = new Scanner(System.in); private static String Userinput; private static void mainmen

所以我的代码有一个问题,我的循环在我的“C”案例之后结束。我需要它打印出一条消息,说商店已满,并保持循环备份和打印出主菜单。此外,当我在添加新宠物后列出所有宠物时,我的宠物3不会被保存。我的

 import java.util.*;
public class MainPets
{

static Scanner scan = new Scanner(System.in);

private static String Userinput;

private static void mainmenu(){
    System.out.println("A."+"  " + "List the pets in the store.");
    System.out.println("B."+"  " + "Age up the pets");
    System.out.println("C."+"  " + "Add a new pet");
    System.out.println("D."+"  " + "Adopt a pet");
    System.out.println("E."+"  " + "Quit");


    Userinput=scan.nextLine();
}

public static String Getuserinput(){

    return Userinput;
}




public static void main (String [] args){
    int Pet3age;
    String Pet3name;
    Pet Pet1=new Pet("Fido",3); 
    Pet Pet2=new Pet("furball",1);
    int Userinputint;
    Pet Pet3=null;


    System.out.println("Welcome to the pet store.Type the letter to make your selection");
    MainPets.mainmenu();




    while(Userinput.equals("A")||Userinput.equals("B")||Userinput.equals("C")||Userinput.equals("D")||Userinput.equals("E")){
    switch(Userinput) {
        case "A": 
            System.out.println("Fido is "+Pet1.GetAge()+ " years old and is " + Pet1.Getadoptionstatus());
            System.out.println("furball is " + Pet2.GetAge()+ " years old and is " + Pet2.Getadoptionstatus());
            Userinput=scan.nextLine();

        case "B":
            System.out.println("Everyone just got a little older.");
            Pet1.ageincrease();
            Pet2.ageincrease();
            Userinput=scan.nextLine();

        case "C":

           if (Pet3!=null){
            System.out.println("Sorry the store is full");
            Userinput=scan.nextLine();
            }/* If the Pet 3 spot has been filled I want it to print this 
            and loop back up to print the main menu again.*/

            if(Pet3==null){ 
            System.out.println("Please type in a name");
            Pet3name=scan.nextLine();

            System.out.println("Please type in an age");
            Pet3age=scan.nextInt();

            Pet3=new Pet(Pet3name,Pet3age);/*This line is Not saving Pet3 as 
             a "Pet"  class and when I try to list all the pets by pressing 
             A  when it loops back up , Pet3 does not show up as a Pet*/


            Userinput=scan.nextLine();/* This is where my program just 
            ends.It doesn't even take a user input */




        }



        case "D":
            //will add later on
            break;
        case "E":
            //will add later on
            break;
        }
}
以下是我宠物类的代码:

    public class Pet {
    String Name, AdoptionStatus, True = "not adopted";
    int Age;

public Pet() {}

public Pet(String Name, int Age) {
    this.Name = Name;
    this.Age = Age;
}

public void SetName(String namesetup) {
    Name = namesetup;
}

public String GetName() {
    return Name;
}

public int GetAge() {
    return Age;
}

public int ageincrease() {
    return Age++;
}

public String Getadoptionstatus() {
    return AdoptionStatus;
}

public void Setadoptionstatus(String setadoption2) {
    AdoptionStatus = True;
}

}    

Pet3时,您的循环正在扩展=空
,因为您没有从扫描仪获取任何输入

案例“C”中的两种情况下进行输入:


Pet3时,您的循环正在扩展=空
,因为您没有从扫描仪获取任何输入

案例“C”中的两种情况下进行输入:

if (Pet3!=null){
        System.out.println("Sorry the store is full");

} else {
        System.out.println("Please type in a name");
        Pet3name=scan.nextLine();

        System.out.println("Please type in an age");
        Pet3age=scan.nextInt();

        Pet3=new Pet(Pet3name,Pet3age);/*This line is Not saving Pet3 as 
         a "Pet"  class and when I try to list all the pets by pressing 
         A  when it loops back up , Pet3 does not show up as a Pet*/

}
Userinput=scan.nextLine(); //make sure to keep this line outside the curly braces.
break;