扫描程序

时间:2017-10-14 12:07:53

标签: java java.util.scanner

我的扫描仪有问题。当我编译它时,没有问题。但是当我想运行这个程序时,我得到一个例外。你能否解释一下这个问题的原因?

import java.util.Scanner;
public class CiagArytmetyczny {

    public static void main(String[] args) {
        Scanner s = new Scanner("System.in");
        System.out.println("Podaj dlugosc ciagu: ");
        int dl = s.nextInt();
        int element = 2;

        for(int i=1; i<=dl; i++) {
            element=element+3;
            System.out.println(element);

        }
    }
}

Podaj dlugosc ciagu:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)

    at java.util.Scanner.next(Scanner.java:1485)

    at java.util.Scanner.nextInt(Scanner.java:2117)

    at java.util.Scanner.nextInt(Scanner.java:2076)

    at CiagArytmetyczny.main(CiagArytmetyczny.java:8)

流程已完成。

1 个答案:

答案 0 :(得分:0)

您在此行中遇到问题

 Scanner s = new Scanner("System.in");

您正在将字符串传递给Scanner构造函数。根据java docs(Scanner(String source)),将返回一个生成从指定字符串扫描的值的新Scanner。根据程序的其余部分,应提供带有编号的字符串,以便扫描仪在以下行中进行拾取。

int dl = s.nextInt();

如果您打算从控制台获取输入,请按照以下步骤更改扫描仪初始化。 Scanner的构造函数很少,我建议你看一下the java docs

Scanner s = new Scanner(System.in);

这将为扫描仪提供控制台输入流。