【问题标题】:Java ask user if they want to continue a programJava 询问用户是否要继续执行程序
【发布时间】:2021-11-17 10:39:04
【问题描述】:

您好,我很好奇是否有任何替代方法可以缩短此代码,但它也会在“输入 1 继续”中遇到输入时循环程序我希望代码读取速度更快,因为它太长了,我想制作它很短,因为这样程序会运行得更快

    System.out.print("Enter first number: ");
    fnum = sc.nextInt();
    System.out.print("Enter second number: ");
    snum = sc.nextInt();
    
    if (fnum <= snum) {
        while (fnum <= snum) {
            System.out.println(fnum);
            fnum++;
        }
    } else {
        while (fnum >= snum) {
            System.out.println(fnum);
            fnum--;
        }
    }
    do {
    System.out.print("Enter 1 to continute, enter any number to end: ");
    enter = sc.nextInt();
    if (enter == 1) {
        System.out.print("Enter first number: ");
        fnum = sc.nextInt();
        System.out.print("Enter second number: ");
        snum = sc.nextInt();
    
        if (fnum <= snum) {
            while (fnum <= snum) {
                System.out.println(fnum);
                fnum++;
            }
        } else {
            while (fnum >= snum) {
                System.out.println(fnum);
                fnum--;
            }
        }
      } else {
        System.out.println("************************************************");
        System.out.println("************************************************");
        System.out.println("******************Thank you*********************");
        System.out.println("************************************************");
        System.out.println("************************************************");
        System.exit(0);
    }
   } while (enter == 1);

} }

【问题讨论】:

  • 我想缩短它,因为这样程序会运行得更快我想 CPU 比你输入实际数字所需的时间要快。跨度>
  • 顺便说一句 continute 应该是 continue
  • 循环之前的代码也可以在循环中完成
  • 全局放置一个变量并在do循环中分配它并在while循环中检查该条件,这就是你如何实现它

标签: java


【解决方案1】:

第一步是考虑你想重复什么。无论用户想要做什么,您都希望至少执行一次循环,所以do-while 是完美的。

一旦用户输入了前两个值,您就想提示用户确定他们是否要继续,这构成了退出条件的一部分

Scanner sc = new Scanner(System.in);
String response = "Y";
do {
    System.out.print("Enter first number: ");
    int fnum = sc.nextInt();
    sc.nextLine();
    System.out.print("Enter second number: ");
    int snum = sc.nextInt();
    sc.nextLine();

    if (fnum <= snum) {
        while (fnum <= snum) {
            System.out.println(fnum);
            fnum++;
        }
    } else {
        while (fnum >= snum) {
            System.out.println(fnum);
            fnum--;
        }
    }

    System.out.println("Do you wish to try again [Y/N]?");
    response = sc.nextLine();
} while ("Y".equalsIgnoreCase(response));
System.out.println("************************************************");
System.out.println("************************************************");
System.out.println("******************Thank you*********************");
System.out.println("************************************************");
System.out.println("************************************************");

nb:出于教育原因,我使用response 作为退出变量,您可以直接使用sc.nextLine()

因此,基本上,这将继续循环,直到用户在“继续”问题中输入除 Y 之外的任何内容(您也可以检查 N,但这取决于您)

【讨论】:

    【解决方案2】:
        int enter=0;
            do {
                if(enter==0){
                    System.out.print("Enter first number: ");
                    int fnum = sc.nextInt();
                    System.out.print("Enter second number: ");
                    int snum = sc.nextInt();
                    if (fnum <= snum) {
                        while (fnum <= snum) {
                            System.out.println(fnum);
                            fnum++;
                        }
                    } else {
                        while (fnum > snum) {
                            System.out.println(fnum);
                            fnum--;
                        }
                    }
                }
                System.out.print("Enter 0 to continue, enter any number to end: ");
                enter = sc.nextInt();
    
            } while (enter==0);
    

    试试这个方法,你的重复代码可以去掉。

    因此,每当您尝试根据用户输入满足的条件运行代码时,请确保始终在 while 循环内终止程序,因为 do whilewhile 主要用于无限期地执行代码直到满足某个条件的目的。在您的情况下,由于您必须至少执行一次代码,因此 do while 是您程序的完美选择

    【讨论】:

      【解决方案3】:

      我只是这样做

          do {
              // your code
              System.out.print("Press [1] to continue: ");
          } while (sc.nextInt() == 1);
      

      把你的代码放进去,如果你用do while方法输入1就会重复

      【讨论】:

        猜你喜欢
        • 2012-05-26
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        • 2015-01-21
        • 1970-01-01
        • 2018-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多