当前位置: 首页 > 知识库问答 >
问题:

在循环满足2个条件之一时执行

伍捷
2023-03-14

我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。

如果输入了“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{但由于某种原因它不起作用,有人能提供帮助吗?

谢谢!

共有1个答案

严恩
2023-03-14

这不是怎么做的,而正在工作。你连检查都没有。

使用此:

 do {
    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();
    if(tempFileName.equals("dog") || tempFileName.equals("cat"))
    { 
       filename = tempFileName.equals("dog") ? dogsFile : catsFile;
       fileNotCorrect = true;
    }else{
      System.out.println("That is not a valid filename, please enter either 'dog' or 'cat' in lowercase.");
    }
}
    while(!fileNotCorrect);
 类似资料:
  • 我正在制作一个汽车游戏。只有“开始”、“停止”、“退出”命令。无法识别任何其他命令。 除了“退出”之外,所有命令都可以正常工作。使用while循环,它会执行和打印else语句: 命令=“退出”应该呈现当条件,因此跳过前面只执行外部的其他语句。为什么它执行其他两个语句,甚至认为同时条件不满足?

  • 所以我必须在eclipse中为我的类创建一个java项目。分配是创建一个程序,允许用户在程序中输入整数,直到输入某个整数(42)。输入整数(42)后,程序将为1。平均输入的所有数字。2、显示输入的最小值和最大值。3、输入的数字总数。这些必须在不计算(42)的情况下进行计算。这就是我目前所拥有的。我可以从用户那里获得输入,一旦他们输入42,程序就会停止并显示总数,但包括42。我不知道如何为输入添加一

  • 我有一个项目,我的方法得到两个日期,它不断地向方法添加一天,直到两个日期相等,然后您可以通过查看一天添加了多少次来查看日期相距有多远。我的问题是,当满足日条件时,即使日、月和年必须都相同才能停止工作,我的while循环也会退出

  • 当我像这样做一个常规的while循环时 它打印 但第二个while循环在满足条件后再次运行。 所以结果是 “佛罗多是一个很好的霍比特人的名字”难道它不应该停止印刷吗 我设置了x的条件 编辑:哦,我现在明白了,哈哈,我想增量是在代码的末尾,开始是0

  • 我试图用Python做一个简单的计算器。 我希望用户写“and”,然后while循环应该结束。当我运行它并输入随机文本时,while循环工作并显示“重试”。然而,当我实际输入正确答案(“add”)时,while循环并没有结束——相反,它一直在说“再试一次”。 为什么会这样?我的代码怎么了?