我的扫描仪有问题。当我编译它时,没有问题。但是当我想运行这个程序时,我得到一个例外。你能否解释一下这个问题的原因?
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)
流程已完成。
答案 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);
这将为扫描仪提供控制台输入流。