我无法弄清楚这一点.我有以下代码:
import java.util.ArrayList;
import java.util.List;
public class TestLoop {
public static List<String> strArray = new ArrayList<String>();
static {
strArray.add("Some");
strArray.add("Silly");
strArray.add("String");
}
public static void main(String[] args) {
int doNotPrintIndex = 1;
int beginIndex = doNotPrintIndex == 0 ? 1 : 0;
for (int i = beginIndex; i < strArray.size() && i != doNotPrintIndex; i++) {
System.out.println(strArray.get(i));
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上,如果我有一个ArrayList
,我永远不想打印出存储在索引' doNotPrintIndex
'内的内容ArrayList
.但是,在以下情况中,循环仅执行一次.我的逻辑中有什么问题吗?
您的循环就会退出作为i
命中doNotPrintIndex
.试试这个循环:
for (int i = beginIndex; i < strArray.size(); i++) {
if (i != doNotPrintIndex) {
System.out.println(strArray.get(i));
}
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以一个接一个地使用两个循环:
for (int i = beginIndex; i < doNotPrintIndex; i++) {
System.out.println(strArray.get(i));
}
for (int i = doNotPrintIndex + 1; i < strArray.size(); i++) {
System.out.println(strArray.get(i));
}
Run Code Online (Sandbox Code Playgroud)