java - 退出java程序时出现问题,代码为 'Q'

标签 java

我编写了一个程序来确定素数,并且需要使用“Q”作为退出函数来退出该程序。下面是我写的代码。我想知道如何修改退出程序的方法以使其正确退出。

import java.util.Scanner;

public class Practice
{
   public static void main(String[]args)
    {
     Scanner keyboard = new Scanner(System.in);
     int number, i=2;
     String quit;
     boolean prime = true;



     System.out.println("Please enter a number to determine if it is prime, to quit     please enter Q.");
     number = keyboard.nextInt();

     quit = keyboard.nextLine();


     for (i=0; i<number;i++)
        {
           if ((number%2==0) || (number==1) || (number%3==0))
           {
              prime = false;
              }
           }
     if (prime==false)
        {
        System.out.println(number+" is not a prime number.");
        }
        else if(prime==true)
        System.out.println(number+" is a prime number.");
    if (quit.charAt(0)=='Q')

       { System.exit(0);}

输入“Q”后我的输出是:

   ----jGRASP exec: java Practice

  Please enter a number to determine if it is prime, to quit please enter Q.
  Q
  Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Practice.main(Practice.java:15)

  ----jGRASP wedge2: exit code for process is 1.
   ----jGRASP: operation complete.








  }

}

最佳答案

当通过控制台的输入为“Q”时,String 类型的值被分配给 int 类型的变量,这是不正确的。

number = keyboard.nextInt();

需要先检查输入中的类型,然后才能将其分配给 int 变量。

关于java - 退出java程序时出现问题,代码为 'Q',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19803027/

相关文章:

java - 在 Python 和 Java 中对原始字节进行哈希处理会产生不同的结果

java - 尝试编写我自己的字符串比较方法 - Java

java - java.lang.ClassCastException : oracle. xdb.XMLType 与 oracle.sql.OPAQUE 不兼容的任何建议解决方案

java - 调用 JNI 函数创建对象

java - 使用 SimpleDateFormat 解析时区不一致

java - Google AutoValue 无法识别 AutoValue_CustomType

java - 是否存在使用 Hibernate 指定模式的 DB 模式迁移工具?

java - 进行符号回归时如何防止被零除?欧洲法院

java - 在Struts 2中引用fileUpload拦截器时出现404错误

java - 如何使用 Java 以编程方式停止和启动 Appium 服务器?