gpt4 book ai didi

java - 如何关闭扫描仪?

转载 作者:行者123 更新时间:2023-12-01 11:09:10 24 4
gpt4 key购买 nike

我的代码可以工作,但完成后我无法关闭扫描仪。 Scanner.close() 在任何地方都不起作用,并且使用 try(Scanner scaner 等似乎也不起作用。谁能告诉我如何在像我这样的代码中关闭扫描仪?

import java.util.Random;
import java.util.Scanner;

public class GuessingGame {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
Random randomGenerator = new Random();
int input;
int code = 0;
int i = 0;
int[] guesses = new int[7];

System.out.println("Secretly type the code or input -1 if you want me to choose");
input = scanner.nextInt();
if (input == -1) {
code = randomGenerator.nextInt(100);
}
else {
code = input;
}

System.out.println("Start guessing!");
while (i < 7) {
guesses[i] = scanner.nextInt();

if (guesses[i] == code) {
System.out.println("Good guess! You won.");
System.out.println((i+1) +" guesses");
i++;



for (int k=0; k<i; k++) {
for (int j=0; j<100; j++)
{

if (j == guesses[k]) {
System.out.print("X");
}

else if (j == code) {
System.out.print("|");
}

else {
System.out.print(".");
}
}

System.out.println("");
}

}

else if (code < guesses[i] && i != 6) {
System.out.println("lower");
i++;
}

else if (code > guesses[i] && i != 6) {
System.out.println("higher");
i++;
}

else {

System.out.println("No more guesses, you lost");
System.out.println((i+1) + " guesses");


for (int k=0; k<=i; k++) {
for (int j=0; j<100; j++)
{

if (j == guesses[k]) {
System.out.print("X");


}

else if (j == code) {
System.out.print("|");
}

else {
System.out.print(".");
}
}

System.out.println("");
}

}
}
}
}

最佳答案

当您用另一个流包装一个流(就像在扫描仪中一样)时,关闭该流也会关闭包装的流。

这意味着如果您关闭扫描仪,您也会关闭 System.in。

我建议将您的 scanner 变量设置为 null,并让垃圾收集器将其从堆中删除。除非您明确想要关闭程序的输入,否则这可能会达到预期的效果。

关于java - 如何关闭扫描仪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569616/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com