Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java异常处理循环错误_Java - Fatal编程技术网

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和布尔标志可以被认为是同一件事。