我在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);
如果有人可以提供帮助,我很感激。
答案 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的值,在这种情况下它是正确的。