对于每个无限循环
For Each Infinite Loop
我是一名初级程序员,我创建了一个方法,它接受用户输入的字符串,检查它是整数还是字符,转换它,然后将它传递到方法的下一部分,即a for each 循环检查存储在链表中的 Person 对象实例的 id 值。
但是它正在创建一个无限循环,我不知道如何打破它以便它只输出一次。非常感谢任何帮助。
我只包含了我认为有问题的方法,如果您需要程序的更多部分,请告诉我,我会添加。
public void theSiv() {
System.out.println("Please enter client Id:");
String s = In.nextLine();
boolean isValidInteger = false;
char choice = 'p';
boolean exists = false;
int searchid = 0;
try
{
int i = Integer.parseInt(s);
isValidInteger = true;
searchid = i;
}
catch (NumberFormatException ex)
{
choice = s.charAt(0);
}
while (choice !='x'){
for (Person b:clients)
if (b.getId() == searchid){
exists = true;
System.out.println("found client");}
if(exists == false)
System.out.println(" No such client");
}
}
无限循环是您的 while (choice !='x'){
,因为在您的 while
循环体中没有任何内容修改 choice
。如果我理解你的代码,那么你可以改成 if
like
if (choice != 'x') {
我是一名初级程序员,我创建了一个方法,它接受用户输入的字符串,检查它是整数还是字符,转换它,然后将它传递到方法的下一部分,即a for each 循环检查存储在链表中的 Person 对象实例的 id 值。
但是它正在创建一个无限循环,我不知道如何打破它以便它只输出一次。非常感谢任何帮助。
我只包含了我认为有问题的方法,如果您需要程序的更多部分,请告诉我,我会添加。
public void theSiv() {
System.out.println("Please enter client Id:");
String s = In.nextLine();
boolean isValidInteger = false;
char choice = 'p';
boolean exists = false;
int searchid = 0;
try
{
int i = Integer.parseInt(s);
isValidInteger = true;
searchid = i;
}
catch (NumberFormatException ex)
{
choice = s.charAt(0);
}
while (choice !='x'){
for (Person b:clients)
if (b.getId() == searchid){
exists = true;
System.out.println("found client");}
if(exists == false)
System.out.println(" No such client");
}
}
无限循环是您的 while (choice !='x'){
,因为在您的 while
循环体中没有任何内容修改 choice
。如果我理解你的代码,那么你可以改成 if
like
if (choice != 'x') {