Вот мой код прямо сейчас. Я действительно просматривал всю вещь, но ханжества ради моей жизни узнать, где проблема casues код не работать в мою пользу по адресу:Когда пользователь вводит «неправильно», скажите ему
import java.util.ArrayList;
import java.util.Scanner;
public class DogGompundTest {
public static void main(String[] args) {
boolean dogFound = false;
boolean toEnd = false;
Scanner keyboard = new Scanner(System.in);
ArrayList<Dog> dogRegister = new ArrayList<Dog>();
//Other dogs in program
Dog d2 = new Dog("Mira", "Miniature Schnauzer", 1, 8.0, 0.8);
dogRegister.add(d2);
Dog d3 = new Dog("Jack", "Jack Russell", 3, 6.0, 1.8);
dogRegister.add(d3);
Dog d4 = new Dog("Charlie", "Pug", 5, 5.0, 2.5);
dogRegister.add(d4);
Dog d5 = new Dog("Max", "Dachshund", 9, 5.0, 3.7);
dogRegister.add(d5);
Dog d6 = new Dog("Bingo", "Golden Retriever", 5, 12.0, 6.0);
dogRegister.add(d6);
System.out.println("Name - Race - Age - Weight - Taillength: " + dogRegister);
while (toEnd == false) {
System.out.println(
"\nWhat would you like to do? \n Press 1 to register a dog. \n Press 2 to get a " +
"look at the taillengths of the dogs. \n Press 3 to delete a dog from " +
"the register.\n Press 4 to quit.");
int command = keyboard.nextInt(); //Alternatives stored in "command"
keyboard.nextLine();
switch (command) { //Execute chosen command in switch-statement
case 1: //User registers a dog
Dog d1 = new Dog("", "", 0, 0.0, 0.0);
System.out.println("\nPlease enter the dogs name:");
String Name = keyboard.next();
d1.setName(Name);
System.out.println("\nPlease enter the dogs race (in English):");
String Race = keyboard.next();
d1.setRace(Race);
System.out.println("\nPlease enter the dogs age (years):");
int age = keyboard.nextInt();
d1.setage(age);
System.out.println("\nPlease enter the dogs weight in kg:");
double weight = keyboard.nextDouble();
d1.setweight(weight);
dogRegister.add(d1);
System.out.println("\n");
System.out.println(
"\nComplete dog information: " + "\nName: " + Name + "\nRace: " + Race
+ "\nAge: " + age + "\nWeight: " + weight + " kg");
System.out.println(dogRegister);
break;
case 2: //User gets to see the different taillengths of the dogs in the register
System.out.println(
"\nEnter taillength and all dogs with a greater taillength will be displayed: ");
double taillength = keyboard.nextDouble();
for (int index = 0; index < dogRegister.size(); index++) {
if (taillength <= (dogRegister.get(index).gettaillength())) {
System.out.println(dogRegister.get(index));
}
}
break;
case 3: //User deletes a dog from the register
System.out.println("State the name of the dog you wish to delete from the register: ");
String delete = keyboard.nextLine();
for (int del = 0; del < dogRegister.size(); del++) {
if (delete.equalsIgnoreCase(dogRegister.get(del).getName())) {
System.out.println("\nThe dog with the given name has been deleted from the register.");
dogFound = true;
dogRegister.remove(del);
System.out.print(dogRegister + "\n");
}
}
{
if (!dogFound)
;
System.out.println("A dog by that name is not registered in our system.");
}
break;
case 4:
System.out.println("\nThe program has now ended.");
toEnd = true;
}
}
}
}
Вы должны пересмотреть свой алгоритм, особенно проверить Javadoc для класса, который вы используете для '' dogRegister'' - Я полагаю, что это нечто унаследованное от '' java.util.Collection''. Уже есть что-то, что вам нужно. Вы должны также предоставить всю необходимую информацию (необходимые определения типов и примеры данных) для воспроизведения вашей проблемы. Может быть, кто-то попытается расследовать это. – 0x0me
'dogFound = false' оценивает' false', поэтому 'println' не будет печатать. Вместо этого вы хотите '! DogFound' или' dogFound == false'. –