Java 使用try-catch后,如何跳回while循环?
不是整个程序,但这个程序做的是,它需要一组数字,并将偶数和赔率分开Java 使用try-catch后,如何跳回while循环?,java,try-catch,Java,Try Catch,不是整个程序,但这个程序做的是,它需要一组数字,并将偶数和赔率分开 public static void main(String [] args) { Scanner stdin = new Scanner(System.in);//for user input int[] evenNum = new int [100];//Even Array up too 100 int[] oddNum = new int[100];//O
public static void main(String [] args)
{
Scanner stdin = new Scanner(System.in);//for user input
int[] evenNum = new int [100];//Even Array up too 100
int[] oddNum = new int[100];//Odd Array up too 100
int evenIndex=0;//even numbers
int input=0;//user input
int i=0;//incrementer for arrays
int k=0;
int j=0;
String name;
System.out.println("Type In Your Name");//Type in name
name = stdin.nextLine();
try{
while ((i < oddNum.length && i < evenNum.length) && input != -1)
//Makes sure no more than 100 numbers can be placed.
{
System.out.println(name+" Enter a positive number, Enter -1 For results");
input= stdin.nextInt();
oddNum[i]=input;
i++;//Increments array
}
}
catch(Exception d)
{
System.out.println("Only Numbers Please");//Makes sure only numbers can be displayed
}
publicstaticvoidmain(字符串[]args)
{
Scanner stdin=新扫描仪(System.in);//用于用户输入
int[]evenNum=new int[100];//甚至数组也向上100
int[]oddNum=newint[100];//奇数数组也向上100
int evendex=0;//偶数
int input=0;//用户输入
int i=0;//数组的增量
int k=0;
int j=0;
字符串名;
System.out.println(“键入您的姓名”);//键入您的姓名
name=stdin.nextLine();
试一试{
while((i
我尝试过使用return,但这是一个类型void,因此我无法使用。它们是我可以使用的pass引用吗?将
try catch
放入while
循环中
while ((i < oddNum.length && i < evenNum.length) && input != -1)
//Makes sure no more than 100 numbers can be placed.
{
try {
System.out.println(name+" Enter a positive number, Enter -1 For results");
input= stdin.nextInt();
oddNum[i]=input;
i++;//Increments array
}
catch(Exception d)
{
System.out.println("Only Numbers Please");//Makes sure only numbers can be displayed
}
}
while((i
捕获实际要处理的异常
考虑一下你的结构:
try {
while {
//...
}
} catch {
//...
}
当您在catch
块中时,while
块完成。流已退出该块,因此没有返回路径。基本上,循环结束
另一方面,考虑这一点:
while {
try {
//...
} catch {
//...
}
}
在这种情况下,当您退出
catch
块时,您仍然处于while
块中。因此循环可以继续。为什么不在循环中尝试而不是整个循环?如果您要求人们阅读代码,请明智地缩进代码。我这样做了,但catch部分继续出现在无限循环中@罗纳尔多:我认为这是因为stdin
仍然需要从控制台读取一些内容。将scanner.next();
插入catch
子句。此外,在I的增量之前,您可能会失败,因此您永远不会增加I!我将try-catch放入while循环中,但我似乎得到了一个连续循环“dh输入一个正数,请输入-1作为结果数字”appearing@Ronaldo:无限循环意味着您的循环条件永远不会结束。您必须在调试器中单步执行,以确定该条件没有更改的原因(以及您认为应该更改的位置)。