用Java编写一个简单的查找程序

时间:2015-02-23 16:54:30

标签: java

所以我需要做的是让这个程序查看一个数据文件,其位置通过命令行参数提供。该文件每行有一个数字。第一个数字是列表中的项目数,在这种情况下,第一行的数字是14,然后是14个值,每行一个。这是代码。

import java.util.*;
import java.io.*;

public class hw3 {
   public static void main(String[] args) throws IOException{
   int num;

   if (args.length == 0) {
   System.out.println("File not submitted, quitting.");
   System.exit(0);
   }
   // set up input
   File inputDataFile = new File(args[0]);
   Scanner inputFile = new Scanner(inputDataFile);

   // read data
   int n = inputFile.nextInt();
   int list[] = new int[n];

   for (int i = 0; i < n; i++)
      list[i] = inputFile.nextInt();

   // user search
   System.out.println("Type a number to search");
   Scanner userkey = new Scanner(System.in);
   num = userkey.nextInt();

   for(int i:data)
      if(userkey==x)
         System.out.println("It is in the list");
   }


}

我知道它会将正确数量的值导入到数组中,但是当我尝试运行它时,我一直收到此错误。这就是我得到的

hw3.java:30: error: cannot find symbol
   for(int i:data)
             ^
  symbol:   variable data
  location: class hw3
hw3.java:31: error: cannot find symbol
      if(userkey==x)
                  ^
  symbol:   variable x
  location: class hw3
2 errors

我不确定我在做什么,我研究过,找不到符号是什么时候没有引用,我是否正确?

3 个答案:

答案 0 :(得分:2)

您没有任何称为数据的变量。我想你想使用list

for(int i : list)
    if(userkey==x)
       System.out.println("It is in the list");
}

x也一样。

答案 1 :(得分:1)

我认为应该是:

for(int i : list)
    if(userkey == i)
       System.out.println("It is in the list");
}

答案 2 :(得分:1)

正确的循环:

   for(int i:list)
      if(num==i)
         System.out.println("It is in the list");
   }