gpt4 book ai didi

java - 初级Java : go back to start after failed try (try contains for loop)

转载 作者:行者123 更新时间:2023-12-02 03:29:51 26 4
gpt4 key购买 nike

如果尝试失败,我希望重新开始。我已经找到了许多模糊相似情况的答案,但不是使用 for 循环和我的结构。这样做不是必需的,也不会对我的任务有好处,但我只是想这样做。该程序按照要求运行,并且超出了要求(是的,这是非常初学者的东西)。我已经尝试过使用 do...while 和 for 循环,我要么得到无限循环,找不到符号等。我知道如果我继续尝试我会得到它,而且我也有一些预感我的错误,但我真的希望有经验的人看看这个并提出建议。

try{                            

System.out.print("Please enter an integer: ");
int original = sc.nextInt();

int entry = Math.abs(original);

String str = new Integer(entry).toString();

int len = str.length();

System.out.println();
System.out.println("The entry is " + len + " digits long.");
System.out.println();
System.out.print("The digits entered are: ");

int runningTotal;
int ttl = 0;

for (int i=1; i<=len; i++){
System.out.print(str.charAt(i-1) + " ");
char num1 = str.charAt(i-1);
String num2 = Character.toString(num1);
runningTotal = Integer.parseInt(num2);
ttl = ttl + runningTotal;
}
System.out.println("\n");
System.out.println("The sum of the digits entered is: " + ttl + "\n");
}
catch (InputMismatchException imeRef){
System.out.println("Data type error: " + imeRef.toString() +"\n"
+ "No letters or special characters allowed.");
}

最佳答案

您真的需要将整个内容放入try..catch block 中吗?仅包装容易出错的部分。

无论如何,这段代码位于一个函数中 - 如果您确实想在出错时重新开始,请尝试以下操作:

void foo() {
try {
doSomeDangerousThing();
catch(Exception e) {
foo()
}
}

当然,这是一个危险的游戏 - 如果它在上次调用时引发了错误,那么如果没有任何变化,为什么在这次调用中不会出现错误?您可能会创建致命的无限循环。除非参数发生变化,否则该错误很可能会再次出现。

如果您只想一遍又一遍地运行代码,请使用 while 循环。

关于java - 初级Java : go back to start after failed try (try contains for loop),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255277/

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