使用在if语句中更改的变量

时间:2019-11-13 13:54:54

标签: java if-statement variables boolean global-variables

我正在用JAVA编写程序,需要更改一个布尔值,但是我无法修复它。

布局如下

while(statement){
    Boolean behind = true;

    if (behind == true){
        do something
        behind = false;
        } 

    if (behind == false){
        do something else
        behind = true;
        }
}

所以基本上我的程序需要迭代“做某事”和“做某事”。但是我认为我的布尔值behind不会被if语句更改,因为behind的“版本”仅存在于语句中。关于如何解决这个问题有什么建议吗?

3 个答案:

答案 0 :(得分:2)

  1. 请勿使用var == true/false。这可能会降低性能并使代码不清楚。使用var代替var == true,使用!var代替var == false
  2. 使用else语句,而不是检查条件的相反情况。
if (behind) {
    //...
    behind = false;
} else {
    //...
    behind = true;
}
3. **Define the boolean outside `while`.**

这也解决了您的问题,因为您无需“重新检查”变量。

答案 1 :(得分:2)

Boolean behind = true;
while(statement){
    if (behind){
        do something;
        behind = false;
    }else{
        do something else;
        behind = true;
     } 
}

答案 2 :(得分:1)

在while块之前定义布尔值。

Boolean behind = true;
while(statement){

    if (behind){
        do something;
        behind = false;
    }  else {
        do something;
        behind = true;
    }
}