无法找出为什么我的程序陷入无限循环

cannot find out why my program is stuck in an infinite loop

每当我尝试在 Directory 构造函数中迭代 while 循环时,Eclipse 控制台都不会输出任何消息。我在注释掉循环时尝试 运行 它,程序能够从 main 方法到达并打印介绍消息。我尝试为 while 循环使用另一个条件,例如 while(directoryposition

public class DirectoryServer {


public static void main(String[] args)
{
    //Initiates Directory called UniversityName.txt***********
    String DirectoryName = "UniversityDirectory.txt";
    //String outFile = "tmp.txt";
    Directory dir = new Directory(DirectoryName);
    //Directory out = new Directory(outFile);
    //*********************************************************


    Scanner stdin = new Scanner(System.in);

    //Introductory Message
    System.out.println("Welcome to the program user\n");
    System.out.println("The actions that can be taken are:\n");
    System.out.println("find    (Last Name)\nadd    (UCID)\ndelete  (UCID)\n");
    System.out.println("What do you want to do?");



  public class Directory {

final int max = 1024;
Person directory[] = new Person[max];//Create a directory of type Person
String position,UCID,first,last,major,email,dept,office;

Scanner inFile=null;
File outFile=null;
Scanner inFileData=null;
Scanner data=null;



Directory(String DirectoryFileName)//Constructor***************
{
    try{
    inFile = new Scanner(new FileInputStream(DirectoryFileName));
    }
    catch(FileNotFoundException e)
    {
        System.out.println("File not found exiting program\n");
        System.exit(0);
    }

    int directoryposition=0;
    while(inFile.hasNext());
    {
        data = new Scanner(inFile.nextLine());



        position = data.next();
        position=position.toLowerCase();


        switch(position)//do something

您的 while 语句后有一个 ;。循环到此结束。

while(inFile.hasNext());

尝试去掉分号;:

  while(inFile.hasNext());{...

收件人:

 while(inFile.hasNext()){...