【问题标题】:How can I delay the execution of a command? [duplicate]如何延迟命令的执行? [复制]
【发布时间】:2015-09-11 22:42:05
【问题描述】:

我不得不说我是 Java 编程的新手,所以我希望得到以下问题的帮助:

如何延迟 java 程序以等待用户输入? 这是我的代码:

import java.util.Scanner;

public class test {

    public static void main(String[] args) {
        System.out.println("1st value= ");
        Scanner aa1 = new Scanner(System.in);
        System.out.println("2nd value= ");
        Scanner bb1 = new Scanner(System.in);

我现在从这段代码中得到的是“第一个值=”和“第二个值=”显示。之后程序请求输入。 关于如何让这个简单的程序在控制台中打印“2nd value=”之前等待用户回答的任何想法?

【问题讨论】:

    标签: java


    【解决方案1】:

    请求用户输入:

    int index = aa1.nextInt();
    

    【讨论】:

      【解决方案2】:

      您不需要创建两个Scanner 变量。您可以使用其中之一并使用函数input.nextInt(); 获取这两个值,其中inputScanner 变量的名称。

      import java.util.Scanner;
      
      public class test {
      
          public static void main(String[] args) {
              Scanner input = new Scanner(System.in);
              int number1, number2;
      
              System.out.println("1st value= ");
              number1 = input.nextInt();
              System.out.println("2nd value= ");
              number2 = input.nextInt();
         }
      }
      

      【讨论】:

      • 谢谢,但为什么扫描仪方法不适合???
      • @BramFran 当您使用Scanner bb1 = new Scanner(System.in); 时,您正在创建一个名为bb1 的新变量Scanner,但您没有读取输入。
      • 如果我希望输入为 double 而不是 int 怎么办?因为我把它设为 number1 = input.nextDouble(); (没有错误),然后当我输入数字 1.5 时,我得到这个崩溃报告:java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner 的线程“main”java.util.InputMismatchException 中的异常。 next(Unknown Source) at java.util.Scanner.nextDouble(Unknown Source) at test2.main(test.java:10)
      • @BramFran 尝试使用昏迷。看到这个问题:*.com/questions/10584948/doubles-commas-and-dots.
      【解决方案3】:
      1. 您必须在 Main 类之前先导入 Scanner。

        import java.util.Scanner;

      2. 然后您必须创建一个 Scanner 变量。我在示例中使用“in”:

        Scanner in = new Scanner(System.in);

        1. 这将强制程序等待用户输入。

      `导入java.util.Scanner;

      public class Example{
          public static void main( String[] args )
          {
              String name;
              String address;
              String cityStateZip;
              Scanner in = new Scanner(System.in);
      
              //User input
              System.out.println("What is your name?");
              name = in.nextLine();
      
              System.out.println("Enter your address:");
              address = in.nextLine();
      
              System.out.println("Enter your City, State, and Zip code:");
              cityStateZip = in.nextLine();`
      

      【讨论】:

        【解决方案4】:

        您只能使用一个Scanner 变量。这是解决方案:

        import java.util.Scanner; 
        import java.util.*;
        
        public class test {
        
            public static void main(String[] args) {
        
                Scanner sc = new Scanner(System.in);
        
                String str = sc.nextLine();
                System.out.println("1st value= " + str);
        
                str = sc.nextLine();
                System.out.println("2nd value= " + str);
            }
        }
        

        您可以在此链接上的文档中看到不同的next***() http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

        如果你想用这种语言编写代码,我建议你遵循 Java 格式。

        【讨论】:

        • 类名和main方法在哪里?
        • @Error404 感谢您提出改进建议
        • 很高兴能提供帮助:)
        【解决方案5】:

        您可以将其用作:

        import java.util.Scanner;
        
        public class test {
        
            public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
                System.out.println("1st value= " 
                    + input.nextInt()
                    + "2nd value= "
                    + input.nextInt());
        }
        

        更多参考可以通过Scanner java doc http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

        【讨论】:

          【解决方案6】:

          在你输入 main 函数后按 control+shift+o 添加必要的导入。

           public static void main(String agrs[])
              {
              // Take Scanner object
               Scanner scanner =new Scanner(System.in);
              // Ask user for 1st input
              System.out.println("Enter 1st value:");
              String value=scanner.nextLine();
              System.out.println("1st value is ="+s);
              // Ask user for 2nd input
              System.out.println("Enter 2nd value:");
              value=scanner.nextLine();
              System.out.println("2nd value is ="+s);
          
          
          
              }
          

          注意:scanner.nextLine() 会将用户输入读取为String, 如果您需要输入为 int ,请使用 scanner.nextInt(); 对于浮动使用 scanner.nextFloat() 等等。

          现在控制台暂停用户输入,然后要求第二个输入。

          希望对你有帮助。

          【讨论】:

            最近更新 更多