在循环中获得不同的输出

时间:2016-01-14 20:01:39

标签: java

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;两次? 它应该只打印一次,因为只有一个查询不在数组中!无法理解

1 个答案:

答案 0 :(得分:1)

flag设置为1后,您需要退出for循环 现在,您检查s是否等于name中的所有元素 添加

break;

System.out.println(name[i]+"="+num[i]);
flag=1;