私のサーバークラスのメインメソッドにはif
、チャットプログラムの予約済みキーワードの一連のステートメントがあり、メソッドとともに変数の値を使用してトラバースしようとしています.equalsIgnoreCase
。else
問題は、変数が特定の値を保持していても、プログラムを実行すると、変数と条件の 1 つが完全に一致していても、コードが常に節にステップインするif
ことです。コードは正常にコンパイルされますが、なぜこれが起こっているのかわかりません。if
変数が正しい値を保持していることを確認するために、ステートメントを開始する直前に変数の値を出力しました。私のコードのスニペットを以下に示します。
System.out.println("Keyword is : " + keyword);
if (keyword.equalsIgnoreCase("who"))
{
System.out.println("calling who function");
whoFunction(address, socket, port);
}
else if (keyword.equalsIgnoreCase("whoami"))
{
whoami(address, socket, port, clientAddress);
}
else if (keyword.equalsIgnoreCase("all"))
{
all(message);
}
else if (keyword.equalsIgnoreCase("Bye"))
{
bye(address, socket, port, clientAddress);
}
else
{
newUser(keyword, address, searchListLength, clientAddress, port);
}
キーワードの値に関係なく、常に最後の else ステートメントを選択します。ご覧のとおり、これにより、常に自分のnewUser
クラスを呼び出すことになります。ここで何か不足していますか?おそらく私の顔をじっと見つめている :/