Ввод пользователя внутри оператора if - PullRequest
1 голос
/ 26 апреля 2020

Здравствуйте, я новичок с java вот мой код:

import java.util.Scanner;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.*;

public class Main extends MyZoo {

    public static void main(String[] args) {

        MyZoo a1 = new MyZoo();

        a1.SetAnimal_Name("Tiger");
        a1.SetCohabitation("Mammal");
        a1.SetGender("Female");
        a1.SetWeight(170);
        a1.SetMaximum_Age(15);
        a1.SetAnimal_Code("A01");

        MyZoo a2 = new MyZoo();

        a2.SetAnimal_Name("Taurus");
        a2.SetCohabitation("Mammal");
        a2.SetGender("Male");
        a2.SetWeight(1100);
        a2.SetMaximum_Age(22);
        a2.SetAnimal_Code("A02");

        MyZoo a3 = new MyZoo();

        a3.SetAnimal_Name("Red Deer");
        a3.SetCohabitation("Mammal");
        a3.SetGender("Male");
        a3.SetWeight(200);
        a3.SetMaximum_Age(27);
        a3.SetAnimal_Code("A03");

        MyZoo a4 = new MyZoo();

        a4.SetAnimal_Name("Giraffe");
        a4.SetCohabitation("Mammal");
        a4.SetGender("Female");
        a4.SetWeight(800);
        a4.SetMaximum_Age(30);
        a4.SetAnimal_Code("A04");

        List<MyZoo> List = new ArrayList<>();
        List.add(a1);
        List.add(a2);
        List.add(a3);
        List.add(a4);

        for (MyZoo s: List) { }

        System.out.println("Welcome to MyZoo application.\nPlease select a number from the menu\n" +
                "-------------------------------------\n " +
                "1.View all available zoo animals\n" +
                " 2.Add a new animal\n " +
                "3.Search for an animal by name\n " +
                "4.Search for an animal by code\n " +
                "5.Animal processing based on code\n " +
                "6.Delete animal based on code\n" +
                " 7.Exit from the application" +
                "\n-------------------------------------\n");

        Scanner input = new Scanner(System.in);

        int UserInput;

        while (true) {

            try {
                System.out.print("\nWrite Here: ");
                UserInput = input.nextInt();

            } catch (InputMismatchException e) {
                input.next();
                System.out.print("That’s not an integer!Please Try again!");
                continue;

            }

            if (UserInput < 1 || UserInput > 7) {

                System.out.println("The number doesn't exist in the menu!Please try again!");
                continue;
            }
            break;
        }

        if (UserInput == 1) {
            System.out.println("You choose " + UserInput);

            for (int i=0;i<List.size();i++){

                System.out.print("\n\nAnimal name:"+List.get(i).GetAnimal_Name());
                System.out.print("\nCohibiatation:"+List.get(i).GetCohabitation());
                System.out.print("\nGender:"+List.get(i).GetGender());
                System.out.print("\nWeight:"+List.get(i).GetWeight());
                System.out.print("\nMaximum Age:"+List.get(i).GetMaximum_Age());
                System.out.print("\nAnimal Code:"+List.get(i).GetAnimal_Code());

                UserInput = input.nextInt();
                }
        } else if (UserInput == 2) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 3) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 4) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 5) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 6) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 7) {
            System.out.println("You choose " + UserInput + "\n\nThank you for running the programm!" +
                    "\nI hope you enjoyed!\nTime to exit, bye!");
            System.exit(0);
        }

    }

}

Когда пользователь пишет 1, он показывает мой список, но не все объекты, и результат:

Welcome to MyZoo application.
Please select a number from the menu
-------------------------------------
 1.View all available zoo animals
 2.Add a new animal
 3.Search for an animal by name
 4.Search for an animal by code
 5.Animal processing based on code
 6.Delete animal based on code
 7.Exit from the application
-------------------------------------


Write Here: 1
You choose 1


Animal name:Tiger
Cohibiatation:Mammal
Gender:Female
Weight:170
Maximum Age:15
Animal Code:A01

Но я хочу, чтобы результат был таким:

Welcome to MyZoo application.
Please select a number from the menu
-------------------------------------
 1.View all available zoo animals
 2.Add a new animal
 3.Search for an animal by name
 4.Search for an animal by code
 5.Animal processing based on code
 6.Delete animal based on code
 7.Exit from the application
-------------------------------------


Write Here: 1
You choose 1


Animal name:Tiger
Cohibiatation:Mammal
Gender:Female
Weight:170
Maximum Age:15
Animal Code:A01

Animal name:Taurus
Cohibiatation:Mammal
Gender:Male
Weight:1100
Maximum Age:22
Animal Code:A02

Animal name:Red Deer
Cohibiatation:Mammal
Gender:Male
Weight:200
Maximum Age:27
Animal Code:A03

Animal name:Giraffe
Cohibiatation:Mammal
Gender:Female
Weight:800
Maximum Age:30
Animal Code:A04

Write here:

с вводом здесь, я хочу спрыгнуть с if, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Почему у вас есть это UserInput = input.nextInt() внутри этого для l oop. Это вызывает у вас неправильное поведение. Удалите это и попробуйте. Это будет работать

       for (int i=0;i<List.size();i++){

            System.out.print("\n\nAnimal name:"+List.get(i).GetAnimal_Name());
            System.out.print("\nCohibiatation:"+List.get(i).GetCohabitation());
            System.out.print("\nGender:"+List.get(i).GetGender());
            System.out.print("\nWeight:"+List.get(i).GetWeight());
            System.out.print("\nMaximum Age:"+List.get(i).GetMaximum_Age());
            System.out.print("\nAnimal Code:"+List.get(i).GetAnimal_Code());

            UserInput = input.nextInt();
      }
0 голосов
/ 26 апреля 2020

Вот восстановленный код вашей программы. Попробуйте это, это должно работать.

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.Scanner;

public class Main extends MyZoo {

    public static void main(String[] args) {
 MyZoo a1 = new MyZoo();

        a1.SetAnimal_Name("Tiger");
        a1.SetCohabitation("Mammal");
        a1.SetGender("Female");
        a1.SetWeight(170);
        a1.SetMaximum_Age(15);
        a1.SetAnimal_Code("A01");

        MyZoo a2 = new MyZoo();

        a2.SetAnimal_Name("Taurus");
        a2.SetCohabitation("Mammal");
        a2.SetGender("Male");
        a2.SetWeight(1100);
        a2.SetMaximum_Age(22);
        a2.SetAnimal_Code("A02");

        MyZoo a3 = new MyZoo();

        a3.SetAnimal_Name("Red Deer");
        a3.SetCohabitation("Mammal");
        a3.SetGender("Male");
        a3.SetWeight(200);
        a3.SetMaximum_Age(27);
        a3.SetAnimal_Code("A03");

        MyZoo a4 = new MyZoo();

        a4.SetAnimal_Name("Giraffe");
        a4.SetCohabitation("Mammal");
        a4.SetGender("Female");
        a4.SetWeight(800);
        a4.SetMaximum_Age(30);
        a4.SetAnimal_Code("A04");

        List<MyZoo> List = new ArrayList<>();
        List.add(a1);
        List.add(a2);
        List.add(a3);
        List.add(a4);



        for (MyZoo s: List) { 

        System.out.println("Welcome to MyZoo application.\nPlease select a number from the menu\n" +
                "-------------------------------------\n " +
                "1.View all available zoo animals\n" +
                " 2.Add a new animal\n " +
                "3.Search for an animal by name\n " +
                "4.Search for an animal by code\n " +
                "5.Animal processing based on code\n " +
                "6.Delete animal based on code\n" +
                " 7.Exit from the application" +
                "\n-------------------------------------\n");

        Scanner input = new Scanner(System.in);

        int UserInput;

        for (int i=0;i<List.size();i++){ 

                System.out.print("\nWrite Here: ");
                UserInput = input.nextInt();

            if (UserInput < 1 || UserInput > 7) {

                System.out.println("The number doesn't exist in the menu!Please try again!");
                continue;
            }


        if (UserInput == 1) {
            System.out.println("You choose " + UserInput);

            for (int j=0;j<List.size();j++){

                System.out.print("\n\nAnimal name:"+List.get(j).GetAnimal_Name());
                System.out.print("\nCohibiatation:"+List.get(j).GetCohabitation());
           .................... other print
                System.out.println("");
                System.out.println();
                }

        } 
        else if (UserInput == 2) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 3) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 4) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 5) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 6) {
            System.out.println("You choose " + UserInput);
        } else if (UserInput == 7) {
            System.out.println("You choose " + UserInput + "\n\nThank you for running the programm!" +
                    "\nI hope you enjoyed!\nTime to exit, bye!");
            System.exit(0);
        }
        }
        }

    }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...