gpt4 book ai didi

java - 按客户端 ID 搜索不起作用

转载 作者:行者123 更新时间:2023-12-01 12:13:17 25 4
gpt4 key购买 nike

当我运行此程序并输入客户端信息,然后决定按 clientID 搜索时,它将始终返回找不到客户端。

这是选择搜索选项的情况:

case 2: 
input = JOptionPane.showInputDialog("Enter the client ID to search for: ");
while(checkSearchClientID(input) == false)
{
input = JOptionPane.showInputDialog("Invalid! Only 9 digits allowed. Re-enter search ID: ");
}
searchClient = input;
searchClient();
if(foundAt < 0)
{
JOptionPane.showMessageDialog(null, "Client not found!");
}
else
{
OptionPane.showMessageDialog(null, "Found at: " + foundAt);
client[foundAt].dispClient();
}
break;

这是搜索方法

public static void searchClient()
{
int i = 0;
while (i < ccount)
{
if(searchClient.equals(client[i].clientID))
{
foundAt = i;
}//end if
i++;
}//end while
foundAt = -1;
}//end searchClient

这是输入客户端 ID 的位置

void getClient()
{
String input = new String (" ");
input = JOptionPane.showInputDialog("Enter client ID: ");
while(checkClientID(input) == false)
{
input = JOptionPane.showInputDialog("Invalid! Only 9 digits allowed. Re-enter client ID: ");
}//end while
clientID = Integer.parseInt(input);

最佳答案

无论发生什么结果,public static void searchClient() 方法始终将foundAt 设置为-1。

public static void searchClient() {
int i = 0;
while (i < ccount)
{
if(searchClient.equals(client[i].clientID))
{
foundAt = i;
}//end if
i++;
}//end while
foundAt = -1; // this always occurs, no matter the result from the while block
}

一个解决方案:在方法的开始处将foundAt设置为-1,而不是结束处。

public static void searchClient() {
foundAt = -1; // ***** here
int i = 0;
while (i < ccount)
{
if(searchClient.equals(client[i].clientID))
{
foundAt = i;
}//end if
i++;
}//end while
// foundAt = -1; // **** not here
}

此外,请考虑让此方法返回foundAt int,以便它返回结果而不是通过副作用进行更新。

关于java - 按客户端 ID 搜索不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159732/

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