【发布时间】:2015-04-14 15:03:38
【问题描述】:
我正在尝试使用 do while 循环来确定用户是否希望将狗或猫签入 Java 中的犬舍系统。这个想法是他们在提示时输入“狗”或“猫”,任何输入都会导致错误,并且会再次提示他们输入文件名。
如果已经输入了“cat”或“dog”,那么等效文件将分配给程序(dogs.txt 或cats.txt),然后系统将运行并将该数据加载到程序中。
以下是当前变量:
private String filename; // holds the name of the file
private Kennel kennel; // holds the kennel
private Scanner scan; // so we can read from keyboard
private String tempFileName;
private String dogsFile = "dogs.txt";
private String catsFile = "cats.txt";
以及导致问题的方法:
private KennelDemo() {
scan = new Scanner(System.in);
boolean fileNotCorrect = false;
System.out.print("Which animal are you looking to check into the kennel?: " + "\n");
System.out.println("Dog");
System.out.println("Cat");
tempFileName = scan.next();
do {
tempFileName.equals("dog");
filename = dogsFile;
fileNotCorrect = true;
/*tempFileName.equals("cat");
filename = catsFile;
fileNotCorrect = true;*/
}
while(fileNotCorrect = false);
System.out.println("That is not a valid filename, please enter either 'dog' or 'cat' in lowercase.");
这是运行代码时打印的内容:
**********HELLO***********
Which animal are you looking to check into the kennel?:
Dog
Cat
cat
That is not a valid filename, please enter either 'dog' or 'cat' in lowercase.
Using file dogs.txt
不管输入什么,它都会给程序分配一个文件,然后继续加载程序。
我尝试使用 catch { 但由于某种原因它不起作用,有人可以提供任何帮助吗?
谢谢!
【问题讨论】:
-
tempFileName.equals("dog");是一个比较;返回一个布尔值(真/假)。也许你想在它周围加上一个 if ( xxx) ?换句话说:您要研究的概念是“使用带有 if 的条件”。 -
你没有 if 语句,
tempFileName.equals("dog");只是返回一个布尔值,但你什么也没做。 -
一个你的问题就在这里:
while(fileNotCorrect = false)。那是一个任务,而不是一个比较。你所拥有的基本上是while(false)。使用==进行比较。
标签: java while-loop