gpt4 book ai didi

java - 异常处理正确结束后,切换代码在永无止境的循环中执行。

转载 作者:行者123 更新时间:2023-12-03 09:14:38 24 4
gpt4 key购买 nike

首先,感谢您阅读这篇文章。
我有这种异常处理的情况,然后是一个开关。异常处理正确结束后,开关代码将在一个永无止境的循环中执行。如果我评论异常处理部分并添加
“selection =scanner.nextInt()”代码工作正常。但是随着异常处理,永无止境的循环再次发生。我很确定这完全与花括号的位置有关,但我只是无法弄清楚它们中的哪一个。
感谢您对此的帮助。

导入 java.util.Scanner;

类主{
私有(private)静态扫描仪扫描仪=新扫描仪(System.in);

public static void main( String[] args ) {

ToString human = new ToString("John", 30, true);

int selection = 0;
boolean quit = false;
String selecta = null;
String message = "Select option";

while (!quit) {
returnMessage(message);
while (selecta == null) {

try {
selecta = scanner.nextLine();
selection = Integer.valueOf(selecta);
break;

} catch (NumberFormatException e) {
returnMessage("An integer was expected. Please try again.");
selecta = null;
returnMessage(message);
}
}
switch (selection) {
case 1:
System.out.println(human.getAge());
break;
case 2:
System.out.println(human.getName());
break;
case 3:
System.out.println(human.isMan());
break;
case 4:
quit = true;
break;

}
}
}

public static void returnMessage (String message){
System.out.println(message);
}

}

最佳答案

selecta在 switch 语句之后变量永远不会被设置为 null 并且因为您的输入位于带有条件 selecta == null 的 block 中它永远不会执行并直接返回 switch 语句,依此类推,依此类推……

selecta = null在 switch 语句之后,应该就是这样。

关于java - 异常处理正确结束后,切换代码在永无止境的循环中执行。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49559390/

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