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

要求输入整数,如果q退出,但如果有其他字母,请重试[重复]

农诚
2023-03-14

我正在开发一个程序,它会要求用户输入一个整数,然后输入另一个,并将它们作为图点。然后它会告诉他们之间的距离。用户必须输入一个整数或按“Q”退出。如果它是其他任何东西(不是整数或字母“Q”),它会告诉他们那是不正确的,请再试一次。我以为这就是我可以实现的方法,但它返回错误cannot find symbol。非常感谢您的帮助!

import java.util.Scanner;

public class PointCheck{

   public static void main(String[] args){

      try {

         System.out.println("Welcome");
         System.out.println("To quit at anytime please type \"Q\". Enter point:");

         char Q = 'Q';
         char q = 'q';
         Scanner scan = new Scanner (System.in);
          input = scan.next();

         while (input.hasNext()) {
            if (input.hasNextInt()) {
               System.out.println("Int input");
            }
            else if (input.equals("Q")) {
               System.out.println("Exiting");

            }
            /*else {
               System.out.println("You did not enter a valid value. Please enter a number or \"Q\" to quit.");
            }*/

         }

      }

      catch(Exception e){
         System.out.println("Exiting Program.");

      }

   }

}

如果我没有注释掉最后一个else语句,它就会默认为该语句,并且永远循环我的错误消息。

共有1个答案

安建木
2023-03-14

我对您的代码做了一些修改,希望对您有帮助:)

public class PointCheck {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    try {

        System.out.println("Welcome");
        System.out.println("To quit at anytime please type \"Q\". Enter point:");
        Scanner scan = new Scanner(System.in);

        while (scan.hasNext()) {
            if (scan.hasNextInt()) {
                System.out.println("Int input" + scan.nextInt());
            } else {
                String input = scan.next();
                if (input.equalsIgnoreCase("Q")){
                    System.out.println("Exiting");
                    break;

                }else {
                    System.out.println("You did not enter a valid value. Please enter a number or \"Q\" to quit.");
                }
            }

        }

    } catch (Exception e) {
        System.out.println("Exiting Program.");

    }
}

}
 类似资料:
  • 代码: 程序需要打印输入中未找到的数字的总和。 我介绍了当数字不重复时的场景,对于这个场景,如果输入为234567890,则输出为1。但是,当数字重复出现时,不要对情景有任何想法。等。如果输入为22334567890或223344556677889900,则输出仍然需要为1,但不是。 还有,我不能用绳子。我知道0没有什么区别,因为我们正在使用-和。

  • 我有这个JS var,后面跟着这个if语句: 我的问题是,当定义了contratType并且他的值是'Nouvelle Affaire'时,仍然输入if。 我错过什么了吗?

  • 我正在创建一个应用程序3x3 Tic tac toe,其中3x3是所有按钮,在点击监听器上,我正在检查可能的组合,是否两个玩家中的任何一个已经作出了他们的“O”或“X”。但在我的“if-else”部分,它不是检查条件,而是直接执行“if和else”部分,即使条件错误。我希望我的问题是可以理解和调试的。任何帮助都是值得的...

  • 我正在尝试制作一个程序,如果文件存在,它将读取该文件。如果文件不存在,那么我希望它返回并再次请求用户输入。现在我已经知道了,它会停下来,但我想让它回过头来,再问一次,有什么想法吗?

  • 当输入一个无效输入时,它会进入catch块并无限执行catch块,而不会返回try块以获取另一个输入 当输入有效数据时,它工作 预期-输入无效值时,向用户显示错误消息并重新输入,直到用户输入有效值。 实际值-当输入无效值时,它会在屏幕上反复显示错误消息,而无需重新输入

  • 我希望scanf读取一些数据并将其存储到多个变量中。但是,如果第一个变量,即数量为0,则scanf需要退出请求用户输入,因为我的后续while循环取决于该值,即数量。如果该值不为零,则继续循环并执行进一步的操作,否则不执行。 样品输入1: 21,1,1.5,1,马铃薯 样本输入2:0 此处,在示例输入2之后,如果输入0并按enter键,scanf仍在等待用户的输入。在输入0和enter键后,如何退