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

扫描仪没有停止要求输入[重复]

单凯捷
2023-03-14

我想在我的代码中手动读取一些值。除了最后一个(lambda2)之外,它对所有值都有效。我可以无限地继续键入值,即使它们不是双精度的,也不会发生任何事情。如果我用任何其他值键入其他值,我会收到一条错误消息,以及第一次输入lambda2时的错误消息。我在另一个代码中以类似的方式(最终只创建了一个不同的对象)进行了操作,并且效果很好。

    System.out.print("All the asked input must be divided by 'Enters' \n");
    Scanner userinput = new Scanner(System.in);
    double b1;
    double b2;
    System.out.print("Enter the backlog costs for product 1 and 2: \n");
    b1 = userinput.nextDouble();
    b2 = userinput.nextDouble();
    double h0;
    double h1;
    double h2;
    System.out.print("Enter the holding costs for components 0, 1 and 2: \n");
    h0 = userinput.nextDouble();
    h1 = userinput.nextDouble();
    h2 = userinput.nextDouble();
    double lambda1;
    System.out.print("Enter the demand rate of product 1: \n");
    lambda1 = userinput.nextDouble();
    double lambda2;
    System.out.print("Enter the demand rate of product 2: \n");
    lambda2 = userinput.nextDouble();
    userinput.close();  

    double c1 = b1 + h0 + h1;
    double c2 = b2 + h0 + h2;
    SP solvable = new SP( b1, b2, h0, h1, h2, lambda1, lambda2, c1, c2);
    return solvable;

共有1个答案

丁宏盛
2023-03-14

你必须有某种方式向你的程序表明你已经完成了输入的收集。输入最后一个值后,在接受更多输入之前没有进一步的指令要执行,所以它会继续尝试收集,永远不会将控制权交还给你的程序。查看此答案,了解如何实现这一目标的全面解释。

 类似资料:
  • 我对编程相当陌生。目前我正在做一个uni项目,用java创建一个基本的文本游戏。我遇到的问题是,如何实现一个不允许用户输入相同名称的业务规则。我把它设置好了,这样扫描仪就可以读取阵列了。我使用的是Java,这是我第一次使用这个论坛,所以我非常感谢大家提供的帮助,并提前感谢大家!:) 并为糟糕的格式道歉,我不知道如何正确发布。

  • 为此,我创建了一个名为的单例。这个类处理所有的输入阅读内容。我创建了一个名为的方法,它将回调作为参数。在这个方法中,我创建了一个新线程,并在其中等待使用的输入。这个类还有方法,它向上面描述的线程发送中断消息。下面是该类的当前实现: 这个代码极不可靠。我一会儿就告诉你我的意思。我制作了一个名为Client的玩具类,在中,我用计时器模拟了消息收入。 以下是它的工作原理: 我知道这个问题非常长(也许是不

  • 我有一个扫描仪,它读入字符串作为坐标输入。我必须将这些字符串转换成整数,并将它们存储在坐标的Arraylist中,但我输入的最后一个值没有存储在Arraylist中。 我尝试在for-loop之外使用,但仍然没有变化。在存储和解析字符串时,我也尝试使用while循环而不是for循环,但得到了相同的结果。 预期结果: 点:[1,2,3,4] 实际结果 点:[1,2]

  • 我正在制作一个地下城探索类型的游戏,用户可以输入输入作为一个移动每回合(选择一个方向移动)。然而,我遇到了一个问题与采取扫描仪输入。当我测试我的方法一次,它是正确的,然而,当我把它进入一个while循环,以便我可以从玩家的每一个回合,我得到一个新的移动,在第一次输入后,我得到了一个错误。我不明白为什么我会得到这个错误,因为它不应该每次运行时都扫描新的输入吗?谢谢你的洞察力。 错误如下: 下面是有问

  • 我正在尝试从系统中读取。输入是这样的:第一个数字是测试用例的数量,然后是整数,然后是一些行。 问题是,尽管循环中存在条件,但当我完成最后一个测试时,while循环不会退出。

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?