如何在for语句中添加if,else语句

时间:2012-03-04 08:10:17

标签: java for-loop if-statement

如何在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次。

我尝试了什么:

  • 将if从true更改为false(绝望之外)
  • 如果在For
  • else,否则if
  • case switch

通常情况下,我只是使用一个开关,但是我使用的是布尔值,而布尔运算器不工作就是开关。

如果有人知道答案,我将永远感激不尽。感谢。

6 个答案:

答案 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)。 需要'=='而不是'='。