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 に答える