0

我正在上编程课,并开始制作类似聊天机器人的程序。如果你说“我想教你”之类的话,我试图能够教它一件事(至少)。

现在它只有在我使用时才有效:

String name = JOptionPane.showInputDialog("What word or phrase would you like to teach me to respond to?")
learn1Reply= JOptionPane.showInputDialog("So now, what do you want me to say when you type, '" + learn1 + "' in?");;

我不知道如何使它成为一个 if 语句,这将导致以后键入:

else if(text.equalsIgnoreCase(learn1))
    {
      JOptionPane.showMessageDialog(null, learn1Reply);
    }

我在这个网站上阅读了很多关于创建条件变量的答案,但它们并没有帮助我。

我敢肯定有一种更简单的方法可以做到这一点,我不知道。

4

1 回答 1

0

考虑将数据与代码逻辑分开存储。例如(由于您的示例,我将假设 java,但我并不是真正的 java 人,所以如果泛型的东西不正确,请原谅我):

HashMap responses = new HashMap<string, string>();

然后在输入响应时简单地添加到地图中。

responses.put("something", "response text");

或者在你的情况下:

responses.put(learn1, learn1Reply); // After you get the input

当您想显示适当的响应时,只需获取它,而不是使用一些大的 if-else 树。(随着他们的成长,他们变得难以阅读和维护。)

所以而不是

... else if(text.equalsIgnoreCase(learn1)){
    JOptionPane.showMessageDialog(null, learn1Reply);
}

您可以简单地自己进行查找。

JOptionPane.showMessageDialog(null, responses.get(learn1);
于 2011-05-03T00:02:50.603 回答