如果语句大于运算符不起作用

时间:2019-07-24 21:15:30

标签: java if-statement

在编写用于通知程序中断或返回的语句时,如果不满足条件并导致错误,则每次仍会执行if语句:java.lang.ArrayIndexOutOfBoundsException

我尝试大于等于==,都可以。并且我检查了“>”还是Java中的运算符。那为什么它仍然执行呢?

public class adjacentElementsProduct {

    static int adjacentElementsProduct(int[] inputArray) {
    if(inputArray ==null|| inputArray.length<0) return 0;
    int res=Integer.MIN_VALUE;

    for( int i=0; i<inputArray.length;i++){
       int stop=i+1;

       if((i+1) > inputArray.length) break;

       res=Math.max(res,inputArray[i]*inputArray[i+1]);
    }
    return res;
}

'''

在这种情况下,由于'''if((i + 1)> inputArray.length)中断;''' 不起作用,因此错误消息是:java.lang.ArrayIndexOutOfBoundsException

1 个答案:

答案 0 :(得分:0)

Java数组具有从零开始的索引,因此长度N的数组中的最后一个元素位于第(N-1)个元素。

EX:int[] a = {1, 2, 3},要访问元素3,我们将写入a[2]a[a.length - 1]

在您的情况下,循环将转到i = inputArray.length - 1,因此,如果您调用inputArray[i + 1],则您正在调用inputArray[inputArray.length],这是超出范围的。为避免这种情况,您可以将循环结束条件修改为i < inputArray.length - 1,也可以将if语句更改为

if((i+1) >= inputArray.length) break;