【发布时间】:2019-10-31 17:34:37
【问题描述】:
我需要帮助设计一个 for 循环,如果找到则返回该名称,如果未找到则返回未找到的请求名称。我需要这样做,而无需多次重复未找到的循环。
我尝试了各种 if、else if 和 else 语句。我还尝试了 for 循环内的 do while 循环,并尝试在循环外执行 not found 语句
String[] values = new String[12];
int name = 1;
// Initialize Scanner
java.util.Scanner input = new java.util.Scanner(System.in);
// Create loop for name input
for (int i = 0; i < values.length; i++)
{
System.out.print("Enter in " + " the name of friend " + name++ + ": ");
values[i] = new String(input.next());
if (values[i].equalsIgnoreCase("zzzz"))
{
break;
}
}
// Create loop for name output
System.out.println("\n" + "The names of your friends are: ");
for (int i = 0; i < values.length; i++)
{
if (values[i].equalsIgnoreCase("zzzz"))
{
break;
}
else
{
System.out.println(values[i]);
}
}
// Search for the name
boolean found = false;
System.out.print("\n" + "Enter in the name of the friend you would like to find: ");
String find = input.next();
for(int i = 0;i < values.length && !found;++i)
{
if (find.equalsIgnoreCase(values[i]))
{
System.out.println("\n" + "Your friend " + find + " was found");
found = true;
break;
}
else if (find != values[i] && (found = false))
{
System.out.println("\n" + "Your friend " + find + " was not found" );
break;
}
}
}
}
我希望 not found 语句不会在循环中重复多次,直到找到实际名称。如果该名称在数组中不存在,则应搜索整个数组并返回未找到。
【问题讨论】:
-
那你为什么把你的朋友没有找到语句放在循环中呢?如果你在循环之后移动它并简单地检查 found == false 你会知道整个数组之后
-
我按照你的指示做了,把它放在循环之外 - 它工作得很好! if (find.equalsIgnoreCase(values[i])) { System.out.println("\n" + "你的朋友 " + find + " 被发现");找到=真;休息; } } if (found == false) { System.out.println("\n" + "你的朋友 " + find + " 没找到" ); }