基本java if子句问题

基本java if子句问题,java,if-statement,Java,If Statement,这个问题太基本了,我甚至不知道如何才能找到它 现在我编程已经有几年了,但我做了大约七年的编程,我清楚地记得(至少关于C++),每当if子句以例如: if((x-1) >= 0) && ... 如果&&左边的部分为false,那么后面的内容就无关紧要了。那么,当在正确的部分使用“x-1”时,怎么可能得到x=0的数组越界异常呢 我从没想过我会问这样一个基本的问题。。。我希望我没有忽略一些重要的事情(现在几乎是凌晨4点了…),希望这里的人能帮助…,因为当x==array.len

这个问题太基本了,我甚至不知道如何才能找到它

现在我编程已经有几年了,但我做了大约七年的编程,我清楚地记得(至少关于C++),每当if子句以例如:

if((x-1) >= 0) && ...
如果&&左边的部分为false,那么后面的内容就无关紧要了。那么,当在正确的部分使用“x-1”时,怎么可能得到x=0的数组越界异常呢

我从没想过我会问这样一个基本的问题。。。我希望我没有忽略一些重要的事情(现在几乎是凌晨4点了…),希望这里的人能帮助…

,因为当x==array.length时,(x-1)可能大于0。下一个条件可能是array[x]和array[array.length]>OutOfBounds

我假设你做了类似于:

if(((x-1) >= 0) && array[x] != null)
在那里你可以做一些类似的事情:

int index = x-1;
if (index >=0 && index < array.length) {
   ...
}
int索引=x-1;
如果(索引>=0&&index
我假设放错地方的偏执不在您的代码中,因为编译器会抱怨其他情况


如果x不是int类型,而是某个无符号类型,也可能出现这种情况。我唯一想到的无符号类型是char。因此,如果x是一个字符,并且是0,减去1,那么最终x是65535,因此大于0,条件中的括号是错误的。你能修复它们以提供更好的上下文吗?如果你能提供一个简短但完整的程序来演示这个问题,我相信我们可以帮助你。如果你试图访问元素
0
,空数组将抛出索引越界异常。你应该对快捷方式求值是正确的,所以我猜还有其他问题,但你没有给出足够的例子来肯定。无论如何,这是一种糟糕的形式。在1/100的时间里,你花在弄清楚这一点上的时间,你可以创建一个嵌套的,如果它的意图更清晰,更容易阅读的话。这样加密你的代码,浪费你的时间和其他人是犯罪行为。欢迎使用Java。如果是凌晨4点,您的状态不适合编写/调试程序。更不用说发泄你的沮丧了。首先,我不知道昨天那里发生了什么,我今天打开了这个项目,在那里设置了一个断点,在调试模式下截图,这样人们就可以看到当前值和它周围的代码,但是我再也没有遇到过边界外的异常。它现在的工作原理和它应该的一样。作为记录,我的代码实际上是这样的——它是递归填充算法的一部分:
如果(x<0 | | x>=dimension | | y<0 | | y>=dimension | | board[x][y]=CHANGED)返回;董事会[x][y]=变更;/*当前单元格的左侧*/if(((x-1)>=0)和&&…)…
也-感谢您的帮助,我非常感谢!如果你所描述的是问题所在,那么你的评论肯定是最有帮助的:)