Scanner实例与静态扫描程序之间的区别

时间:2015-05-26 21:51:44

标签: java java.util.scanner

我最近开始学习java

我的问题是如果我使用static Scanner read= new Scanner(System.in);,当我输入s1值非整数时,我收到此错误:

  

此行中线程“main”java.util.InputMismatchException中的异常:

     

a = oku.nextInt();在goster()方法中。

当我删除static Scanner read= new Scanner(System.in);并激活goster()方法中的注释行时,一切正常。

当我使用导致我的代码失败的静态时会发生什么变化?

public static void main(String[] args) {

        while (check)
        {
            goster();
            try
            {
                hatali=false;
                System.out.print("1. sayi: ");
                s1 = read.nextDouble();
                System.out.print("2. sayi: ");
                s2 = read.nextDouble();



            } catch (Exception e)
            {
                System.out.println("HATALI SAYI GİRİŞİ!");
                hatali=true;
            }

            if(hatali==false)
            {
            menu(a, s1, s2);
            }
        }

 public static void goster() {
       //Scanner read= new Scanner(System.in);
        System.out.println("");
        System.out.println("1- a+b");
        System.out.println("2- a-b");
        System.out.println("3- a*b");
        System.out.println("4- a/b");
        System.out.println("5- a%b");
        System.out.println("6- a^b");
        System.out.println("7- cikis");
        System.out.print("seciminiz 1-7: ");
        a = read.nextInt();
    }

1 个答案:

答案 0 :(得分:0)

nextInt()用于“将输入的下一个标记扫描为int”。如果您希望输入是通用类型,则为nextByte()。