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

在Java中使用do-while循环检查用户的输入

张承颜
2023-03-14

我试图创建一个简短的基于文本的冒险游戏使用Java。

我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。

import java.util.Scanner;
public class House
{
    public static void main(String[]args)
    {

        System.out.println("You have just moved into your new house.");
        System.out.println("What do you do next?");
        Scanner scan = new Scanner(System.in);
        String input = scan.next();

        do
        {
            if(input.equals("enter") || input.equals("Enter"))
            {
                System.out.println("You have entered the house.");
            }

            else if(input.equals("leave") || input.equals("Leave"))
            {
                System.out.println("You left and never came back.");
                System.out.println("The End");
                System.exit(0);
            }

            else
            {
                System.out.println("I don't know how to "+input);
                System.out.println("Try again");
                System.out.println("What do you do next?");
                input = scan.nextLine();
            }
        }
        while(!input.equals("enter") || !input.equals("Enter") || !input.equals("leave") || !input.equals("Leave"));

    }
}

为什么会出现这个问题?我不知道我做错了什么。

谢了!

共有1个答案

潘宪
2023-03-14

将其更改为

...
String input;
do
{
    input = scan.next();
    if(input.equals("enter") || input.equals("Enter"))
    {
        System.out.println("You have entered the house.");
    }
...
 类似资料:
  • 我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢

  • 论坛的新成员。试着搜索,但找不到任何有用的东西。我在另一个使用Java1.7的IDE上运行了这段代码,没有问题。我现在正在使用Eclipse并将java更新到1.8,并且在行“response=input.nextline();”时得到错误:java.util.NoSuchelementException。奇怪的是,我有另一个函数返回一个字符串,并使用完全相同的循环(do/while进行模式检查)

  • 所以我想让用户输入“true”或“false”来退出循环。现在,无论我输入什么,它都会退出循环。 顺便说一句,这是一个关于色彩卫士的节目

  • 问题内容: 这里的Python新手非常抱歉,我确定这是一个愚蠢的问题,但是我似乎无法在要求我使用while循环检查有效用户输入的教程中解决以下挑战。 (使用Python2.7) 这是我的代码,但无法正常工作: 上面打印输出到控制台: 这显然是不正确的-循环应该在用户输入“ y”或“ n”时结束,但是我不确定如何执行此操作。我在这里做错了什么? 注意:挑战要求我同时使用运算符和 问题答案: 较短的解

  • 我想写一个程序,把每4位数字的每一位相加。例如,我从1000开始,加上1001,千变成2,百变成0,十变成0,单位变成1。这将持续增加每个数字,直到达到9999。这是我的代码,它只输出9999。

  • 这里的Python新手非常抱歉,我确信这是一个愚蠢的问题,但在一个教程中,我似乎无法解决以下挑战,该教程要求我使用while循环来检查有效的用户输入。 (使用Python2.7) 这是我的代码,但它工作不正常: 上述内容打印到控制台: 这显然是不对的- 注意:挑战要求我同时使用运算符和