class Solution {
public static void main ( String[] argv ) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] name = new String[n];
String[] num = new String[n];
String s;
String v;
int flag = 0;
for (int i = 0; i < n; i++) {
name[i] = in.next();
num[i] = in.next();
}
while (in.hasNext()) {
s = in.next(); // query
for (int i = 0; i < n; i++) {
flag = 1;
if (s.equals(name[i])) {
System.out.println(name[i] + "=" + num[i]);
flag = 1;
} else {
flag = 0;
}
}
if (flag == 0) System.out.println("Not found");
}
}
}
这是代码,我得到了 代码有名称和数字以及查询字符串!
sam=99912222
Not found
Not found
harry=12299933
为什么有&#34;未找到&#34;两次? 它应该只打印一次,因为只有一个查询不在数组中!无法理解
答案 0 :(得分:1)
将flag
设置为1后,您需要退出for循环
现在,您检查s
是否等于name
中的所有元素
添加
break;
后
System.out.println(name[i]+"="+num[i]);
flag=1;