Я пишу простую программу ввода-вывода файлов в java, и моя программа позволяет пользователю вводить файл, который они хотят редактировать (это будет файл, который я прочитал в используя мой FileReader). Тем не менее, я хотел бы продолжать предлагать пользователю вводить имя файла до тех пор, пока он не войдет в действительный файл (файл, который уже существует). По какой-то причине мой компилятор (Eclipse) говорит мне, что «булева переменная loopFlag не используется» нигде.java do while loop не может получить доступ к переменной
Когда я запускаю программу, если пользователь вводит плохой ввод (файл, который не существует), программа запускается правильно и снова запрашивает пользователя для имени файла. Однако, если пользователь вводит хороший ввод (файл, который уже существует), программа бесконечно циклически и все еще предлагает пользователю ввести имя файла. Вот мой код:
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', но сравнение с' true' здесь необязательно (и, по крайней мере, для меня не так приятно читать как просто «while (loopFlag)») – SomeJavaGuy
Он должен be 'while (loopFlag == true)' или лучше, 'while (loopFlag)'. Вы * присваиваете *, когда используете '='. – RealSkeptic