是否可以在alternative for loop representation中添加第二个条件Java 的。
我有一个在 do-while 循环结束时更新的集合。在这个do-while循环
中,有一个for循环
。
例如:(这不起作用,但说明了我想要实现的目标)
List<String> list =....load up with stuff
do {
for (String string : list && counter < 5)
{
System.out.println(string);
counter++;
}
while(update list)
以某种方式正常表示:
do {
for (int i = 0; i < list.size() && counter < 5; i++)
{
System.out.println(list.get(i));
counter++;
}
while(update list)
在此结构中不起作用。
更新
我用这段代码尝试了两个答案:
int counter = 0;
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
System.out.println("Test one");
for (String string : list) {
if(counter < 3 )
System.out.println(string);
else
break;
counter++;
}
System.out.println("Test two");
counter = 0;
for (String string : list) {
if (counter >= 3) break;
System.out.println(string);
counter++;
}
TedHopp的答案解决了打破第一个循环的问题。
最终解决方案
跳出for循环
和跳出while循环
,我最终做了以下事情:
int breakNow = false;
do {
for (String string : list)
{
System.out.println(string);
counter++;
if (counter >= 3)
{
breakNow = true;
break;
}
}
while(update list && !breakNow)
最佳答案
您不能将二进制测试与增强的 for
循环结合起来;语法不允许。您需要使用传统的 for
循环语法,或者将 boolean 测试放入循环内并break
退出循环。
for (String string : list) {
if (counter >= 5) break;
System.out.println(string);
counter++;
}
我不确定什么不适用于适用于增强型 for
循环的传统语法;他们本质上做同样的事情。 (事实上,由于增强的 for
循环使用迭代器,因此如果您异步更新列表,则会面临并发修改异常的风险。)
关于java - 第二个条件替代 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20224551/