zoukankan      html  css  js  c++  java
  • Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException

    这个异常是Java中的数组越界问题

    当你使用不合法的索引访问数组是会出现这种错误
    例如:

     class Solution {
        public static int  climbStairs(int n) {
            if (n == 1 || n == 2) {
                return n;
            }
            int[] demo = new int[n];    
            demo[1]=1;
            demo[2]=2;
            for (int i = 3; i <=n; i++) {
                demo[i] = demo[i-1] + demo[i-2];
            }
            return demo[n];
        }
    }
    public class palouti {
        public static void main(String[] args) {
            System.out.println(Solution.climbStairs(3));
        }
    }

    发生这种错误的原因是:

    在这个地方开辟数组长度为n

    int[] demo = new int[n];  

    而在下面的使用中

    for (int i = 3; i <=n; i++) {
                demo[i] = demo[i-1] + demo[i-2];
            }

    无论n的值为多少都会超出界限
    因为数组的索引是从 0 开始的,前面开辟的长度每次都差了一位
    例如:n=3时,在 for 循环的索引中,都会索引到 demo[3],而从 0 开始索引,到demo[3]时,就相当于从 0-1-2-3,超出了数组界限

    解决方法也很简单

    只要将

    int[] demo = new int[n];  

    改为

    int[] demo = new int[n+1];  

    Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException:
    这个异常会经常遇到,只要注意数组的界限,就可以避免了

  • 相关阅读:
    设置navigationBar透明,隐藏iOS导航条底部与self.view的分界线
    毛玻璃效果
    手动代码约束,等比例
    UIScrollView基本用法和代理方法
    swift学习笔记
    设置子视图背景颜色不影响到父视图的背景颜色方法
    JS内置对象
    JS创建自定义对象
    dom添加事件
    dom对象操作Html,Css
  • 原文地址:https://www.cnblogs.com/lx06/p/15688926.html
Copyright © 2011-2022 走看看