Citat:
Ursprungligen postat av
Demnok
Om hunden inte hittades i början av loopen ska den printa ut "Error: dog not found" och loopen avslutas, samma logik gäller när användarnamn efterfrågas.
Det enda jag har fått till är att loopen avslutas när hunden inte hittas. Jag vet annars inte vart i loopen jag ska sätta printen för att den ska printa "Error: dog not found" vid rätt tillfälle.
Är kravet att det skall vara nästlat?
Annars kan du lägga in en tidig return
[PHP] public void giveDog() {
System.out.print("Name of the dog?>");
String dogName = input.registerString();
Dog requestedDog = null;
for (Dog d : dogIndex) {
if (d.getName().equalsIgnoreCase(dogName)) {
requestedDog = d;
System.out.println("dog found");
break;
}
}
if (requestedDog == null) {
System.out.println("Error: dog not found");
return;
}
System.out.print("Name of user?>");
String userName = input.registerString();
User requestedUser = null;
for (User u : userIndex) {
if (u.getName().equalsIgnoreCase(userName)) {
requestedUser = u;
System.out.print("user found");
break;
}
}
if (requestedUser == null){
System.out.println("Error: user not found");
}
}[/PHP]
Eller i funktionell stil
[PHP] public void giveDogFunctional() {
String dogName = input.registerString();
Dog dog = dogIndex.stream()
.filter(d -> d.getName().equalsIgnoreCase(dogName))
.findFirst()
.orElse(null);
if (dog == null) {
System.out.println("dog not found");
return;
}
// some method on dog
String userName = input.registerString();
User user = userIndex.stream()
.filter(u -> u.getName().equalsIgnoreCase(userName))
.findFirst()
.orElse(null);
if (user == null) {
System.out.println("user not found");
}
// some method on user
}[/PHP]