java if条件满足但是执行else语句

以下是代码:

for (int a = 0; a < m; a++) {
for (int b = 0; b < n; b++) {
boolean flag = w[a].equals(dic[b]);
if (flag) {
count[b]++;
break;
}
else System.out.println("?");
}
}

就是匹配两个String数组里的内容相同的并计数。调试显示flag为true,但是程序始终执行else语句,请大神帮忙解答。

不存在这个问题,

String[] m={"a","b","c"};
String[] n={"a","d","e"};
int count=0;
for (int a = 0; a < m.length; a++) {
for (int b = 0; b < n.length; b++) {
boolean flag = m[a].equals(n[b]);
if (flag) {
count++;
System.out.println(m[a]);
break;
}
else System.out.println("?");
}
}

输出结果

a
?
?
?
?
?
?
匹配到第一个啦