【发布时间】:2016-05-12 02:05:50
【问题描述】:
我是论坛新手,也是编程新手。 如果我的问题真的很基本,我提前道歉,但我对此很陌生,而且我必须在很短的时间内学到很多东西,所以我可能会错过一些概念。
关于我的问题, 我有一种方法应该检查矩阵是否仍有可用空间,如果找到则停止。
矩阵已经这样初始化了(我知道它可能在一行中,但是矩阵是在对象的构造函数中创建的)
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 异常。如果矩阵已满,则仅返回 true。所以我可能错过了导致布尔值打破 for 循环的正确方法。
提前感谢您的宝贵时间。
【问题讨论】:
-
为什么不用
return false替换full = false? -
@BJ Myers 确实有效。非常感谢,但我仍然想知道在这种情况下如何打破 for 语句?如果我想用布尔值取消 for 语句,这是唯一的方法吗?
-
删除
for循环中的!full并将full = false;替换为return false; -
@Jerry06 是的,确实有效,感谢您的回答。但是,我仍然想知道当前代码中的哪些内容不起作用。假设出于某种原因,我想在方法或类似的东西之外打破 for 语句。而且我必须用布尔值打破 for 语句。程序如何评估 !full 为真?
-
!true == false,同样,!false == true
标签: java if-statement for-loop boolean break