停止点java后如何继续循环

时间:2018-10-27 14:09:12

标签: java

我是Java的初学者。我被分配了一项检查工作。根据我存储在arraylist中的这张表。我的arraylist的格式为2d。

WEEK 1| SUN  | WD | AV | MON  | -  | -  | TUE  | WD | AV  | ...
WEEK 2| SUN  | -  | -  | MON  | WD | AV | TUE  | WD | AV  | ...

WD :工作日 AV :可用

我必须检查所有WD和AV是否都有效。但是现在循环出现了问题。

我的问题是,当迭代器找到字符串“ WD”,并且条件的结果为TRUE时,我的循环将在那里停止。我希望它继续迭代以搜索下一个“ WD”,而不是包含在同一行中,并且希望继续下一行以继续进行检查。我所有的数据都是String类型的。

           for (int t = 0; t < al.size(); t++) {

                    if (al.contains("WD")) {
                         continue;
                        if(condtion) {
                          }else if(condtion) {
                           continue;
                          }else if(condition) {
                            continue;
                          }else if(condition) {
                            continue;
                         }else {
                           System.out.println("invalid data");
                            continue;
                             }
                     }
                }

你们能帮我告诉我为什么我的代码无法按我希望的方式工作吗?对不起,我的英语。

2 个答案:

答案 0 :(得分:0)

我认为您应该检查数组列表中的每个元素。像这样:

if (al.get(t).contains("WD"))

我猜是解决方案。

    for (int t = 0; t < al.size(); t++) {
     if (al.get(t).contains("WD")) {
      continue;
       } 
      else {
       System.out.println("invalid data");
       continue;
      }
     }
    }

在您的解决方案中,您检查了整个列表。这意味着如果列表中只有一个“ WD”,则第一个条件始终为true,而永远不会达到“ else”。

答案 1 :(得分:0)

for (int t = 0; t < al.size(); t++) {

                    if (al.contains("WD")) {
                         continue; // using continue keyword causes the loop to skip an iteration.
                        if(condtion) {
                          }else if(condtion) {
                           continue;
                          }else if(condition) {
                            continue;
                          }else if(condition) {
                            continue;
                         }else {
                           System.out.println("invalid data");
                            continue;
                             }
                     }
                }

使用了continue关键字后,当前迭代将被跳过。删除继续(然后,如果为true,则将执行if条件下的“ WD”检查下面的代码)