java do while循环无法访问变量

时间:2016-05-13 09:31:37

标签: java variables file-io filereader do-while

我在java中编写一个简单的文件I / O程序,我的程序允许用户输入他们想要编辑的文件(这将是我使用FileReader读取的文件)。但是,我想继续提示用户输入文件名,直到他们输入有效文件(已存在的文件)。出于某种原因,我的编译器(Eclipse)告诉我"布尔变量loopFlag未被使用"任何地方。

当我运行程序时,如果用户输入了错误的输入(一个不存在的文件),程序将正确运行并再次提示用户输入文件名。但是,如果用户输入了一个好的输入(已存在的文件),程序将无限循环并仍然提示用户输入文件名。这是我的代码:

String fileName;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // read in user input
boolean loopFlag; // compiler says this is not used anywhere, but I use it in my do-while loop?!?!

do
{
     loopFlag = false;
     System.out.println("Please enter the file name you wish to edit (including extension):");
     fileName = br.readLine(); // set fileName equal to user input
     // this try catch block is to make sure that the file exists
     try
     {
          FileReader fr = new FileReader(ManipulateText.readFileName);
          fr.close();
     }
     catch (FileNotFoundException fnfe) 
     {
          System.err.println("No file found: " + fileName);
          loopFlag = true; // repeats the loop until user enters valid file
     }
} while (loopFlag = true);

如果有人可以提供帮助,我很感激。

2 个答案:

答案 0 :(得分:5)

while (loopFlag = true)

在上面的代码中,您设置 loopFlag布尔值为true, NOT 比较

此代码应为:

while (loopFlag)
or
while (loopFlag == true)

P.S:

  

我的编译器(Eclipse)告诉我“布尔变量loopFlag是   没用过“

相信你的IDE;),它暗示你从未将它用于任何逻辑,你只为它赋值。

答案 1 :(得分:1)

你在while语句中有错误它应该是while (loopFlag);while (loopFlag == true);语句loopFlag = true是分配并且具有opperation的值,在这种情况下它是正确的。