Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java do while循环可以';t访问变量_Java_Variables_File Io_Filereader_Do While - Fatal编程技术网

java do while循环可以';t访问变量

java do while循环可以';t访问变量,java,variables,file-io,filereader,do-while,Java,Variables,File Io,Filereader,Do While,我正在用java编写一个简单的文件I/O程序,我的程序允许用户输入他们想要编辑的文件(这将是我使用FileReader读入的文件)。但是,我希望不断提示用户输入文件名,直到他们输入有效的文件(已经存在的文件)。出于某种原因,我的编译器(Eclipse)告诉我“布尔变量loopFlag未在任何地方使用” 当我运行程序时,如果用户输入了错误的输入(不存在的文件),程序将正确运行并再次提示用户输入文件名。但是,如果用户输入了正确的输入(一个已经存在的文件),程序将无限循环,并且仍然提示用户输入文件名。

我正在用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);
如果有人能帮忙,我很感激

while (loopFlag = true)
在上面的代码中,loopFlag布尔值设置为true,对其进行比较

此代码应为:

while (loopFlag)
or
while (loopFlag == true)
附言:

我的编译器(Eclipse)告诉我“布尔变量loopFlag是 “未使用”


相信你的IDE;),这表明您从未将其用于任何逻辑,您只为其分配了一个值。

您在while语句中有错误,它应该是
while(loopFlag)
while(loopFlag==true)语句
loopFlag=true
是assignment,具有opoperation值,在本例中为true

将其写为
,而(loopFlag)
,您当前仅在每次迭代中为其赋值
true
,循环将永远不会停止。你本想让它成为
loopFlag==true
,但是在这里没有必要将它与
true
进行比较(至少对我来说,读起来不像普通的
while(loopFlag)
),它应该是
while(loopFlag==true)
或者更好,
while(loopFlag)
。当您使用
=
时,您正在分配。大多数自尊的IDE(例如Eclipse)将显示一条警告并将其标记为潜在错误,从而为您节省宝贵的时间;-)该死的,所有的时间都是因为一个被遗忘的等号谢谢