我是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;
}
}
}
你们能帮我告诉我为什么我的代码无法按我希望的方式工作吗?对不起,我的英语。
答案 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”检查下面的代码)