布尔值不会中断语句
Boolean doesn't break for statement
我是论坛新手和编程新手。
如果我的问题真的很基础,我提前道歉,但我真的很陌生,我必须在很短的时间内学到很多东西,所以我可能会错过几个概念。
关于我的问题,
我有一个方法应该检查矩阵是否仍有可用空间并在找到时停止。
矩阵已经像这样初始化了(我知道它可以在一行中,但矩阵是在对象的构造函数中创建的)
protected char[][] matJeu = null;
matJeu = new char[10][10];
然后用 for 语句填充像这样的空格,它工作得很好
方法在这里
public boolean checkIfFull()
{
boolean full = true;
for (int i=0;i<matJeu.length || !full;i++)
{
for (int j=0;j<matJeu[i].length || !full ;j++)
{
if(matJeu[i][j]==' '){
full = false;
}
}
}
return full;
}
问题是当完整的布尔值变为 false 时,for 循环不会中断并最终导致 ArrayOutOfBounds 异常。如果矩阵已满,则 returns 为真。所以我可能错过了导致布尔值中断 for 循环的正确方法。
提前感谢您的宝贵时间。
循环的条件部分将导致循环继续,只要它 returns true
.
一旦 full=false
被击中,那么 !full==true
,条件语句将始终评估为 true
(anything || true == true
),本质上使您处于无限状态循环使用您当前的代码。
要中断 for 循环,您需要条件部分计算为 false
。
我不确定您打算让循环做什么,因为根据上一段,在第一个 space 字符处停止似乎不是您想要的。
问题是您的 for 循环中的 或 条件。
for (int i=0;i<matJeu.length || !full;i++)
在这里,只要至少一个条件为真,循环就会继续执行。
因为i<mathJeu.length
仍然为真,循环继续执行,不管full
是true
还是false
。
相反 - 您想要的是 和 条件。
for (int i=0;i<matJeu.length && full;i++)
这将告诉它“只要它低于数组长度并且我们检测到它仍然是满的,就继续循环”。
我是论坛新手和编程新手。 如果我的问题真的很基础,我提前道歉,但我真的很陌生,我必须在很短的时间内学到很多东西,所以我可能会错过几个概念。
关于我的问题, 我有一个方法应该检查矩阵是否仍有可用空间并在找到时停止。
矩阵已经像这样初始化了(我知道它可以在一行中,但矩阵是在对象的构造函数中创建的)
protected char[][] matJeu = null;
matJeu = new char[10][10];
然后用 for 语句填充像这样的空格,它工作得很好
方法在这里
public boolean checkIfFull()
{
boolean full = true;
for (int i=0;i<matJeu.length || !full;i++)
{
for (int j=0;j<matJeu[i].length || !full ;j++)
{
if(matJeu[i][j]==' '){
full = false;
}
}
}
return full;
}
问题是当完整的布尔值变为 false 时,for 循环不会中断并最终导致 ArrayOutOfBounds 异常。如果矩阵已满,则 returns 为真。所以我可能错过了导致布尔值中断 for 循环的正确方法。
提前感谢您的宝贵时间。
循环的条件部分将导致循环继续,只要它 returns true
.
一旦 full=false
被击中,那么 !full==true
,条件语句将始终评估为 true
(anything || true == true
),本质上使您处于无限状态循环使用您当前的代码。
要中断 for 循环,您需要条件部分计算为 false
。
我不确定您打算让循环做什么,因为根据上一段,在第一个 space 字符处停止似乎不是您想要的。
问题是您的 for 循环中的 或 条件。
for (int i=0;i<matJeu.length || !full;i++)
在这里,只要至少一个条件为真,循环就会继续执行。
因为i<mathJeu.length
仍然为真,循环继续执行,不管full
是true
还是false
。
相反 - 您想要的是 和 条件。
for (int i=0;i<matJeu.length && full;i++)
这将告诉它“只要它低于数组长度并且我们检测到它仍然是满的,就继续循环”。