gpt4 book ai didi

Java,创建一个条件语句,如果没有元素的名称与输入匹配,则发送消息?

转载 作者:行者123 更新时间:2023-12-02 01:18:42 26 4
gpt4 key购买 nike

如果缺少信息,我提前道歉,这对我来说是新的!

所以作业说;有一家宠物酒店(狗、猫和蛇),该程序应该打印出他们应该吃多少食物以及什么类型的食物。用户写下宠物的名字,它应该打印出来。

我不明白的是如何编写一个条件语句,该条件语句表示如果没有元素的名称与输入匹配,则写“我们酒店没有具有该名称(输入)的宠物”。

我遇到这个问题的原因是因为我无法访问任何元素,除非我创建一个 foreach 循环,并且我不希望在循环结束后为每个元素弹出一条消息。

import javax.swing.*;

public class Main {

public static void main(String[] args) {

Dog d1 = null;
Dog d2 = null;
Cat c1 = null;
Cat c2 = null;
Snake s1 = null;

try {
d1 = new Dog("Sixten", 5);
d2 = new Dog("Dogge", 10);
c1 = new Cat("Venus", 5);
c2 = new Cat("Ove", 3);
s1 = new Snake("Hypno", 1);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
System.exit(0);
}

Hotel h1 = new Hotel();
h1.addPet(d1);
h1.addPet(d2);
h1.addPet(c1);
h1.addPet(c2);
h1.addPet(s1);

h1.getPets(); // gets the list with all the pets

while (true) {
String input = JOptionPane.showInputDialog("What pet(name of pet) needs feeding?");
if (input == null){
System.exit(0);
break;
}
else if(input.equals("")){
JOptionPane.showMessageDialog(null, "Invalid input!");

}// HERE IS WHERE I WANT THE STATEMENT
else if(**Statement that says if input isn't equal to any of the animal's name**){

}
else{
input = input.toLowerCase();

for(Pet pet: h1.getPets()){

String text1 = String.format("%s%10s%10s\n", "Namn:", "Mått:", "Sort:");
String text2 = String.format("%s%10.2f%16s", pet.getName(), pet.measureFood(), pet.getFoodName());
String text3 = "---------------------------------------\n";
text1 = text1 + text3 + text2;


if (pet.getName().toLowerCase().equals(input)) {
JOptionPane.showMessageDialog(null,text1);
break;
}
}


}
}

}

}

最佳答案

事实上,您不需要额外的条件。

如果您编写一个单独的条件来检查是否没有宠物的名称与输入匹配,那么您将迭代宠物列表两次,这是多余的。

请注意,如果找到宠物,for 中的 if 将被运行。我们可以在 if 中将 boolean 变量设置为 true,并在循环后检查它是否找到宠物:

// in the else branch of the outermost if
boolean petFound = false; // note this line
input = input.toLowerCase();

for(Pet pet: h1.getPets()){

String text1 = String.format("%s%10s%10s\n", "Namn:", "Mått:", "Sort:");
String text2 = String.format("%s%10.2f%16s", pet.getName(), pet.measureFood(), pet.getFoodName());
String text3 = "---------------------------------------\n";
text1 = text1 + text3 + text2;


if (pet.getName().toLowerCase().equals(input)) {
JOptionPane.showMessageDialog(null,text1);
petFound = true; // note this line
break;
}
}
if (!petFound) {
// show the message that there is no pet with the input name
}

关于Java,创建一个条件语句,如果没有元素的名称与输入匹配,则发送消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58145905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com