如何在if...else
语句中添加for
语句?
这是代码:
// This is within a actionListener. When ever I press a button, this happens.
for (int i = 0; i < booleanVariable.length; i++) {
//length is 8
System.out.println("booleanVariable is" + booelanVariable[i]);
if (booleanVariable[i] = true) {
booleanVariable[i] = false;
System.out.println("booleanVariable was true")
break;
} else {
System.out.println(" booleanVariable is false");
}
}
这是3次按下的输出:
booleanVariable is true
booleanVariable was true
//correct
booleanVariable is false
booleanVariable was true
//incorrect.
booleanVariable is false
booleanVariable was true
//incorrect
这意味着,由于某种原因,即使booleanVariable为false,输出也是如此,这是假的。
我发现了什么:
break;
语句,程序将全部绕过8次,输出与没有break
完全相同,只有不正确的值再输出5次。我尝试了什么:
通常情况下,我只是使用一个开关,但是我使用的是布尔值,而布尔运算器不工作就是开关。
如果有人知道答案,我将永远感激不尽。感谢。
答案 0 :(得分:5)
你的问题可能就在这一行:
if (booleanVariable[i] = true) {
布尔比较应使用==
,除非您打算将值设置为true。无论如何,这一行总是会评估为真。
另请注意,您永远不需要与true
进行比较,您可以简单地说:
if (booleanVariable[i]) {
因为如果值为true,则输入代码块,如果为false,则进入else情况。
答案 1 :(得分:5)
更改您的
if (booleanVariable[i] = true) {
到
if (booleanVariable[i] == true) {
您需要使用==
运算符进行比较。一个=
将值设置为true
,返回始终为true。
您也可以将其更改为
if (booleanVariable[i]) {
答案 2 :(得分:4)
您必须使用==来比较这些值。你使用=为函数赋值true,所以它总是为真
if (booleanVariable[i] == true)
答案 3 :(得分:3)
if语句中有错误 -
你为变量分配 true,这就是每次输出为真的原因。 它需要是==(等于)而不是=(分配)。
答案 4 :(得分:2)
if (booleanVariable[i])
代替if (booleanVariable[i] = true)
.... =
是赋值运算符...您也可以使用==
代替
答案 5 :(得分:2)
你应该改变if(booleanVariable [i] = true),如果(booleanVariable [i] == true)。 需要'=='而不是'='。