WHILE中的多个条件

时间:2019-01-19 13:25:38

标签: java

任何一个都从同时读取((行= reader1.readLine())!=空)

BufferedReader reader1 = new BufferedReader(new InputStreamReader(
                new FileInputStream(DEST2),charset));

任一 同时(crunchifyIterator.hasNext())

List<String> list = new ArrayList<>();
Iterator<String> crunchifyIterator = list.iterator();

是否可以执行以下操作:

if (list !=null) {
    Iterator<String> crunchifyIterator = list.iterator();

    while (crunchifyIterator.hasNext()) {
        //code
    }
}
else 
    while ((line = reader1.readLine()) != null)
    {
        //code
    }

只能在一段时间内吗?

2 个答案:

答案 0 :(得分:0)

您可以根据输入类型使用布尔集,然后在一段时间内使用

while ((isReadingFromFile && (reader1.reader1.readLine() != null)) ||
       crunchifyIterator.hasNext()) {

我不确定这是最好的选择,但是如果您想在2个循环之间共享代码,最好将while循环内的代码移至私有方法

if (...) {
    while (crunchifyIterator.hasNext()){
        handleLine(crunchifyIterator.next());
    }
} else {
    while ((line = reader1.readLine()) != null) {
       handleLine(line);
    }
}

答案 1 :(得分:0)

您可以执行以下操作:

Iterator<String> crunchifyIterator = list.iterator();
while (
   (list!=null && crunchifyIterator.hasNext()) || 
   (list==null && (line = reader1.readLine()) != null)
){
   //code
}

但是,如果代码修改了列表,它将无法正常工作。如果列表更改,则应将列表副本保存在变量中,并在条件而不是列表中使用它。