gpt4 book ai didi

java - 在扫描仪读取输入之前必须输入多次

转载 作者:行者123 更新时间:2023-12-01 18:06:18 24 4
gpt4 key购买 nike

如果我运行这段代码

Scanner sc = new Scanner();
while (true) {
if (sc.next().equals("1"))
System.out.println("--1--");

else if (sc.next().equals("2"))
System.out.println("--2--");

else if (sc.next().equals("3"))
System.out.println("--3--");

else if (sc.next().equals("4"))
System.out.println("--4--");

else if (sc.next().equals("help"))
System.out.println("--help--");
}

我第一次输入 Enter 时它不会读取。我必须输入 2-4 次才能读取输入。 session 可能如下所示:

1
1
1
1
--1--
3
3
--3--
help
2
1
help
--help--

无论我输入什么,它都只会读取四个输入中的最后一个输入。有时它会在两次输入后读取。我对此真的很困惑。我应该使用多个扫描仪吗?

最佳答案

你的概念在这里是错误的。

每次您请求 sc.next() 时,它都会等待输入。如果该输入等于您想要的值,则执行代码。

您可以通过将 sc.next() 存储在字符串变量中,然后进行比较来纠正此问题。

这里:if (sc.next().equals("1"))它要求输入。

如果该输入为 1,则执行代码并打印出 --1--。否则,它会跳转到:if (sc.next().equals("2"))。现在,如果输入为 2,则执行打印 --2-- 的代码。否则,它会跳转到 if (sc.next().equals("3")) 等等。

您可以通过以下方式纠正此问题:

  • sc.next() 存储在字符串变量中,然后进行比较。
  • 使用 switch-case block 来比较输入。

关于java - 在扫描仪读取输入之前必须输入多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com