gpt4 book ai didi

Java异常错误导致代码突然停止

转载 作者:行者123 更新时间:2023-12-01 22:25:44 25 4
gpt4 key购买 nike

我正在为类做一个项目,一切都工作正常,直到教授给我们的代码会提示用户“doOver”代码(如果他们选择的话),它会出现这个错误,坦白说我很困惑.

我尝试将 sc.nextLine 更改为 .hasNextLine,就像我在其他帖子中看到的那样,但它出现一个错误,指出它需要是 boolean 值,然后说我不能使用下一个 doOver.trim( ) boolean 值代码。

final static String TITLE = "ISBN-13 Generator!";
final static String CONTINUE_PROMPT = "\nDo this again? [y/n] ";
static Scanner input = new Scanner(System.in);

private static void process(Scanner sc, String args[]) {

boolean numberChecker;
String isbn;
do {
System.out.println("\nEnter the first 12 digits of an ISBN-13: ");
isbn = input.nextLine();
input.close();
isbn = isbn.trim();
numberChecker = true;
int s = 0;

do {
numberChecker = numberChecker && Character.isDigit(isbn.charAt(s));
s++;
} while (s < isbn.length() || numberChecker == false);
} while (isbn.length() != 12 & numberChecker == false);

int sum = 0;
int s = 0;
do {
if (s % 2 == 0) {
sum = sum + isbn.charAt(s) - 48;
} else {
sum = sum + 3 * (isbn.charAt(s) - 48);
}
s++;
} while (s < 12);
{
sum = 10 - (sum % 10);
if (sum == 10)
sum = 0;
}
System.out.println("Your ISBN is " + isbn + sum);
}

private static boolean doThisAgain(Scanner sc, String prompt) {
System.out.print(prompt);
String doOver = sc.nextLine();
return doOver.trim().equalsIgnoreCase("Y");
}

public static void main(String args[]) {
System.out.println("Welcome to " + TITLE);
Scanner sc = new Scanner(System.in);
do {
process(sc, args);
} while (doThisAgain(sc, CONTINUE_PROMPT));
sc.close();
System.out.println("Thank you for using the " + TITLE);

}

它应该显示“Do this again? [y/n]”,您输入“y”重新开始该过程,输入“n”停止并让系统打印出来(“感谢您使用” +标题)

最佳答案

发生这种情况是因为您已经使用行 input.close(); 关闭了扫描仪实例

只需注释掉或删除input.close();,您的程序就会按预期运行。

        System.out.println("\nEnter the first 12 digits of an ISBN-13: ");
isbn = input.nextLine();
//input.close();

如果有帮助请告诉我! :)

关于Java异常错误导致代码突然停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58567441/

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