如果有indexOutOfBoundException,如何打破循环?

时间:2014-01-06 01:36:19

标签: java loops indexoutofboundsexception

如果有indexOutOfBoundException,是否可以突破循环?例如:

int v = 987;  
int c = 783;  
int[] someArray = new int[23];       
   do{  
     //do stuff  
     if(someArray[68] == indexOutOfBoundException){ // How can this be done? 
       break;  
     }  
   }while(v > c); 

我知道这个someArray[68]本身会抛出一个错误,但是你可以防止它成为一个错误而只是打破一个给定的循环吗?

2 个答案:

答案 0 :(得分:2)

我认为你要问的是,在引发异常之前是否有办法摆脱循环。为此,您可以根据数组大小测试数组索引:

int v = 987;  
int c = 783;  
int[] someArray = new int[23];       
do{  
    // do stuff  
    int arrayIndex = (some expression);
    if (arrayIndex >= someArray.length) break;
    int anotherValue = someArray[arrayIndex];
    // do something else
}while(v > c); 

答案 1 :(得分:1)

为什么这不应该很难。只需添加try catch。

int v = 987;  
int c = 783;  
int[] someArray = new int[23];       
   do{  
     //do stuff  
     int val;
     try{
         val = someArray[68];
     }catch(Exception e) {
         break;
     }
     // do some other operation with the val 
   }while(v > c); 

顺便说一句,这只是滥用try catch,即使这是一个你不应该以任何方式使用它的解决方案。