【发布时间】:2016-02-24 19:24:46
【问题描述】:
while (a != true) {
try {
input = user_input.nextInt();
calculate(input);
a = true;
} catch (InputMismatchException ex) {
user_input.next();
System.out.println("fdsa");
} catch (RangeException ex) {
}
}
if (input == 1)
我的问题是我捕获了我需要的异常,如果输入是 4 或字符串,我打印错误消息并且程序再次要求我输入 1 到 4 之间的数字,但是当我开始实现异常,我的 if 上的输入变量说它可能没有被初始化。这是我第一次实现异常,我很难过。
(编辑)我解决了上一个问题,但是当我输入一个介于 1 和 4 之间的 int 时,我遇到了一个新的扫描仪无法解决的问题。我的这段代码在另一个 while 循环中,该循环当前是无限的,因为它不允许我在 input=user_input.nextInt() 上再次输入;命令,它总是以我最初输入的相同值重复。提前致谢,很抱歉没有以结构化的形式提出我的问题。
【问题讨论】:
-
正如它所建议的,初始化你的变量..
-
请发布一个可行的示例,然后指出您的预期输出以及您得到的输出是什么
-
你可以摆脱
a。将while (a != true)更改为while (true)并将a = true;替换为break。然后编译器会很聪明地意识到,当你到达if (input == 1)行时,input必须已经被赋予了一个值。 -
我知道这不是一个格式正确的问题,对此我很抱歉,感谢您的回答,您对我的帮助很大。