if (y >= map.length || x >= map[y].length||x<0||y<0) {
            return;这个东西报异常 找了好久才明白 小散一下分

解决方案 »

  1.   

    找到原因就好
    -----------------------------------------------
    千万别按CTRL+W
      

  2.   

    map[y]如果提示数组越界那应该是这个。还有你的map代表的是什么?数组?
      

  3.   


    if (y >= map.length || x >= map[y].length)  //当y大于map的长度时, x >=map[y].length这里越界了
      

  4.   

    说明你的 map里没有第y个元素。  y>=map.length...
      

  5.   

    诶如果你的y正好是数组的长度,那就挂了
    比如,分别有a[0]到a[4],5个元素,是吧?
    size = 5
    但是你写个a[5]试试看?
    所以建议以后不要把这么罗嗦的逻辑表达式写一排
      

  6.   

    不明白x, y 代表什么意思,
    另外,“||”符合短路求值法,也就是先运算左边的,若为真则不会运算右边的,
    若有数组越界,此时y<0, 因为当y>=map.length时,if 语句“||”左边为TRUE,不会计算“||”右边的表达式
      

  7.   

    呵呵。。就是定义数组长度的时候,一定要大于等于0,map【y】中如果y小于0肯定出错,楼主以后小心一点,主要是概念要理解清楚。
      

  8.   

    y >= map.length || x >= map[y].length一眼看出来 map 到底是变量还是指针?
      

  9.   

    x >= map[y].length
    这是什么意思呀?
      

  10.   

    if (y<0 || x<0 || map == null || y >= map.Length || map[y] == null || x >= map[y].length) return;