对于循环不评估

Joe*_*dev 1 java loops

我无法弄清楚这一点.我有以下代码:

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.但是,在以下情况中,循环仅执行一次.我的逻辑中有什么问题吗?

Ted*_*opp 5

您的循环就会退出作为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)