【发布时间】:2017-12-11 03:34:27
【问题描述】:
String aaa= "password";
int wloop = 0;
while (wloop<myarraylist.size()) {
for (int i = 0; i < myarraylist.size(); i++) {
Something qwerty = myarraylist.get(i);
String bbb= qwerty.getinfor();
if (aaa.equals(bbb)) {
System.out.println("you have found it!");
wloop = myarraylist.size();
}wloop++;
}
System.out.println("nothing have been found");
}
我有一个要使用 for 循环迭代的东西的数组列表。每次迭代时,我都会从数组列表中获取一个对象。我以字符串格式获取它的信息。如果我在对象信息中找到字符串“密码”,我想在屏幕上打印一条消息,说“我已经创建了它”。
你可能会认为我只会找到字符串“密码”一次。
但是,如果在遍历整个数组列表之后,我希望在屏幕上打印“没有找到任何东西”的消息。
不过
正如目前所写的那样,无论发生什么,“什么都没有找到”总是会打印到屏幕上。我无法在 for 循环中不发生任何事情,在每次迭代之后(每个迭代都由 if 语句检查)成为触发动作的条件。我尝试将整个 for 循环放在 if 语句中,但在某处添加“return true”时遇到了麻烦。
【问题讨论】:
-
设置
wloop = arraylist.size()强制循环退出看起来你正试图“欺骗”循环退出。当你可以使用简单的代码来明确你在做什么时,不要使用棘手的代码。在这种情况下,break. -
谢谢!当我们学习循环时,我们没有被告知课堂休息时间。现在我知道了。
标签: java for-loop if-statement while-loop