public class a2 {
public static int read() {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
sc.close();
return num;
}
public static void out (int a, int b) {
System.out.println("Sum: " + (a+b));
System.out.println("Difference: " + (a-b));
System.out.println("Product: " + (a*b));
System.out.println("Quotient: " + ((double)a/(double)b));
System.out.println("Remainder: " + (a%b));
}
public static void main(String[] args) {
System.out.println("Please enter two integers!:");
int a = read();
int b = read();
out(a,b);
}
}
我对我的代码有一点理解上的问题。每次运行代码时,在输入第一个整数后都会收到此错误消息。
在java.util.scanner.throwfor(未知源)在java.util.scanner.next(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在a2.read(A2.java:6)在a2.main(A2.java:22)
我发现,当我删除“sc.close();”行,或者当我将两个变量中的一个定义为常数时,它工作得非常好。有人能给我解释一下吗?
你不能这样做:
int a = read();
int b = read();
因为read方法正在关闭扫描器,并在幕后关闭来自系统的输入流······
全局声明扫描器对象并读取所需的内容,最后关闭它
private static Scanner sc;
public static int read() {
return sc.nextInt();
}
public static void out(final int a, final int b) {
System.out.println("Sum: " + (a + b));
System.out.println("Difference: " + (a - b));
System.out.println("Product: " + a * b);
System.out.println("Quotient: " + (double) a / (double) b);
System.out.println("Remainder: " + a % b);
}
public static void main(final String[] args) {
System.out.println("Please enter two integers!:");
sc = new Scanner(System.in);
int a = read();
int b = read();
sc.close();
out(a, b);
}
问题内容: 我正在用Java从头开始编写RPG战斗系统,雄心勃勃吧?好吧,我遇到了麻烦。这是我的代码: 当它到达代码中的这一点时,我得到: 你会怎么做?说(战斗)(运行)(使用项) 线程“主”中的异常java.util.NoSuchElementException: 在Combat.turnChoice(Combat.java:23)的 java.util.Scanner.nextLine(Unk
因此,在调用一个我将在下面发布的函数(在main中)后,在同一个main中创建一个新的扫描器对象不起作用,并给了我以下错误: 它就放在我调用函数之后(在上面的代码中,我会关闭扫描器)。当我注释掉调用函数时,这个扫描器工作了,所以函数中的一些东西导致了扫描器中的错误。我花了几个小时寻找,但无法解决它,如果有人可以,我会非常感激。函数: (当我测试它时,我总是输入2)我尝试删除do-while循环,但
我刚开始我的大学java课程,在扫描器类中不断得到这个错误。 我不断得到的错误是:
我是这样编译它们的: 确切的错误是这样的:
问题内容: 我试图将我的应用程序中较大且经常使用的部分重构为单独的方法,以使其易于维护。 其中一些方法要求用户输入并进行输入验证,因此我使用了Scanner和System.in,但是当我关闭Scanner时,我也关闭了System.in。 所以我的问题是,我只能通过用CloseShieldInputStream屏蔽System.in来防止System.in关闭,还是应该开始将Scanner传递给方
我试图将应用程序中大量且经常使用的部分重新划分为不同的方法,以使其更容易维护。 其中一些方法要求用户输入并进行输入验证,因此我使用了扫描仪和系统。但当我关闭扫描仪时,我也会关闭系统。在里面 所以我的问题是,我只能阻止系统。通过使用CloseShieldInputStream屏蔽它来关闭,还是我应该开始向方法传递一个扫描器?