【发布时间】:2013-09-09 00:32:57
【问题描述】:
我有一个布尔数组,其大小取决于随机选择的字符串的大小。
所以我有这样的事情:
boolean[] foundLetterArray = new boolean[selectedWord.length()];
随着程序的进行,这个特殊的布尔数组会被数组中每个元素的真实值填充。我只想在数组的所有元素都为真后立即打印一条语句。所以我试过了:
if(foundLetterArray[selectedWord.length()]==true){
System.out.println("You have reached the end");
}
这给了我一个越界异常错误。我也尝试过 contains() 方法,但即使数组中的 1 个元素为真,也会结束循环。我是否需要一个遍历数组所有元素的 for 循环?我该如何设置测试条件?
【问题讨论】:
-
数组索引从 0 开始,所以最后一个元素是
foundLetterArray[selectedWord.length() - 1]。== true也有点多余;您不需要将真值与另一个进行比较,而是可以直接将其用作条件。 -
你需要一个循环来检查是否所有的元素都是
true。在循环中遇到第一个false元素时可以停止。 -
干杯,伙计们。这解决了越界问题,但如果只有最后一个元素为真,则此 if 语句假定整个数组为真。关于如何解决这个问题的任何想法?例如,如果所有元素都是假的,最后一个元素是真的,它会说“你已经到了尽头”。真的吗?还是我又做错了什么?