如何让它再循环回到FOR循环的开头?我试着搜索答案。继续使用对我来说似乎不起作用。
try{
for (int i = 0; i < Array1.length; i++){
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
Array1[i]= input.nextInt();
}
}//try
catch (InputMismatchException e)
{
System.out.println("pls enter integers only ");
}//catch
我如何再次继续这个过程?例如
输入值 五 输入值 1 输入值 G 请仅输入整数 - &gt;&gt;错误异常就在这里
显示此错误后,如何在不重新输入值1的情况下继续输入值过程?
答案 0 :(得分:3)
你必须把try / catch放在for循环中(并在catch块中减少i,这样所有的索引都会被填充)。
由于人们似乎对这里的基础知识感到困惑,为什么不使用整个代码:
Scanner input = new Scanner(System.in);
System.out.println("Enter integer values: ");
for (int i = 0; i < Array1.length; i++){
try {
Array1[i]= input.nextInt();
} catch (InputMismatchException e) {
System.out.println("Please enter integers only");
i--;
}
}
// Now your Array1 is filled with ints
答案 1 :(得分:1)
你说如果发生异常会如何回滚?你不能在for循环中插入try / catch语句吗?
Scanner input = null;
for (int i = 0; i < Array1.length; i++){
System.out.println("enter Values ");
input = new Scanner(System.in);
try {
Array1[i]= input.nextInt();
} catch (InputMismatchException e) {
System.out.println("pls enter integers only ");
}
}
CODE EDITED:最好的编程用途是在循环外声明变量
答案 2 :(得分:1)
如果发生任何异常,它将重新开始。
for(int i=0;i<a.length;i++){
try{
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
a[i]=input.nextInt();
}
catch(InputMismatchException e){
System.out.println(e.getMessage());
i=-1;
}
}
下面的只会尝试获取触发异常的值:
for(int i=0;i<a.length;i++){
try{
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
a[i]=input.nextInt();
}
catch(InputMismatchException e){
System.out.println(e.getMessage());
i--;
}
}
答案 3 :(得分:1)
尝试使用以下代码。
try{
for (int i = 0; i < Array1.length; i++){
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
Array1[i]= input.nextInt();
if(i==Array1.length-1) i=0;
}
}//try
catch (InputMismatchException e)
{
System.out.println("pls enter integers only ");
}
将始终执行相同的循环。这是你想要的吗?
答案 4 :(得分:0)
如果要在捕获异常时再次启动整个过程,
boolean isValid = false;
while(isValid == false) {
try{
for (int i = 0; i < Array1.length; i++){
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
Array1[i]= input.nextInt();
}
isValid = true;
}//try
catch (InputMismatchException e)
{
System.out.println("pls enter integers only ");
}//catch
}
答案 5 :(得分:0)
try{
for (int i = 0; i < Array1.length; i++){
System.out.println("enter Values ");
Scanner input = new Scanner(System.in);
Array1[i]= input.nextInt();
}
}
catch (InputMismatchException e) {System.out.println("pls enter integers only ");
i = 0;
continue;
}
希望它有所帮助。