Java异常处理循环错误
为了得到帮助,我把一切都弄明白了Java异常处理循环错误,java,Java,为了得到帮助,我把一切都弄明白了 当我在尝试1/4时输入字母时,它工作正常并继续,但一旦我在尝试2/4时输入字母,它只打印消息,程序停止。还有关于#2的任何提示,我只能想到如果(guess>=4&&guess你正在检查,而(x==1)在外循环中,从内循环中,你通过执行x=2;来增加x的值。这将打破条件,你将在循环时从外出来 如果要继续,应为外部while循环设置有效条件。请尝试类似while(x
当我在尝试1/4时输入字母时,它工作正常并继续,但一旦我在尝试2/4时输入字母,它只打印消息,程序停止。还有关于#2的任何提示,我只能想到如果(guess>=4&&guess你正在检查
,而(x==1)
在外循环中,从内循环中,你通过执行x=2;
来增加x
的值。这将打破条件,你将在循环时从外出来
如果要继续,应为外部while
循环设置有效条件。请尝试类似while(x<5);
您的代码应该如下所示:
do {
try {
...
/* Inner While */
while() {}
...
} catch () {
/* Exception Handling */
...
}
} while(x < 5); /* Decide a valid condition */
do{
试一试{
...
/*内心的*/
while(){}
...
}捕获(){
/*异常处理*/
...
}
}而(x<5);/*决定一个有效条件*/
您正在检查外部循环中的while(x==1);
并通过执行x=2;
从内部循环中增加x
的值。这将打破条件,您将退出外部while
循环
如果要继续,应为外部while
循环设置有效条件。请尝试类似while(x<5);
您的代码应该如下所示:
do {
try {
...
/* Inner While */
while() {}
...
} catch () {
/* Exception Handling */
...
}
} while(x < 5); /* Decide a valid condition */
do{
试一试{
...
/*内心的*/
while(){}
...
}捕获(){
/*异常处理*/
...
}
}而(x<5);/*决定一个有效条件*/
1)尝试将try-catch块移动到内部循环中,使其仅封闭
int guess = input.nextInt();
2) 你的第二个想法应该行得通
if(guess>=4 && guess<=16)
就说
guess = input.nextInt();
当前猜测将对您有用,直到您更新它
4) 您的变量x令人困惑。您是否将其用作结束外部循环的标志?如果是这种情况,则将其设置为布尔值
boolean flag = true;
然后,当您准备跳出循环时,可以将标志设置为false。改变
x = 2;
到
同样,对于循环所有更改
while(x==1)
到
1) 尝试在内部循环中移动try-catch块,使其仅封闭
int guess = input.nextInt();
2) 你的第二个想法应该行得通
if(guess>=4 && guess<=16)
就说
guess = input.nextInt();
当前猜测将对您有用,直到您更新它
4) 您的变量x令人困惑。您是否将其用作结束外部循环的标志?如果是这种情况,则将其设置为布尔值
boolean flag = true;
然后,当您准备跳出循环时,可以将标志设置为false。改变
x = 2;
到
同样,对于循环所有更改
while(x==1)
到
你能包括错误跟踪吗?你有什么问题?你想知道如何写一个新的异常或者你的异常没有被捕获吗?添加了当我在顶部执行程序时会发生什么?你能包括错误跟踪吗?你有什么问题?你想知道如何写一个新的异常或者你的异常没有被捕获吗?添加了当我在topI changed x=2执行程序时会发生什么;转换成x++;x<5;如果我在2/4中键入字母,我的尝试重置为1/4,但我希望它保持为当前尝试的2/4、3/4、4/4。在这种情况下,它不会执行“你输了”。现在当我执行它时,结果是。这是因为您正在初始化尝试
中的do while
。您应该在do while
循环之外声明它。您只有一个do while
循环。另一个while
在这个do-while
循环中。几个更改。请更改类名。给你:泰,我帮你解决了这个问题。第二个答案帮助更大,但我猜x和布尔标志可以被认为是同一件事;转换成x++;x<5;如果我在2/4中键入字母,我的尝试重置为1/4,但我希望它保持为当前尝试的2/4、3/4、4/4。在这种情况下,它不会执行“你输了”。现在当我执行它时,结果是。这是因为您正在初始化尝试
中的do while
。您应该在do while
循环之外声明它。您只有一个do while
循环。另一个while
在这个do-while
循环中。几个更改。请更改类名。给你:泰,我帮你解决了这个问题。第二个答案帮助更多,但我猜x和布尔标志可以被认为是同一件事。