Android Studio - 条件总是如此?

时间:2018-04-09 01:14:14

标签: android if-statement

这是我第一次发帖,因为我无法找到答案。我的if / else语句发生了一些非常奇怪的事情。我的代码在过去的一周里工作得很好,但是最近它继续告诉我一个声明总是正确的吗?

我的代码如下:

    int checking = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if (checking != 1) {
        speaker.setChecked(true);
    } else if (checking == 1) {
        speaker.setChecked(false);
    }

}

这说明checking == 1总是正确的,但是如果我把它切换到:

if (checking == 1) {
    speaker.setChecked(true);
} else if (checking != 1) {
    speaker.setChecked(false);
}

这表明checking != 1也是正确的。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:0)

这只是编辑的逻辑。在第一个if语句中,检查checking == 1和第二个if语句,您对该语句表示否定。编辑将理解第二个if语句总是如此

我认为您应该将else if替换为else。对不起我的英语不好。

答案 1 :(得分:0)

试试这个

int checking = 1;
boolean isChecked = false; 

isChecked = ((checking == 1) ? true : false)
speaker.setChecked(isChecked)

答案 2 :(得分:0)

您看到此警告的原因是:

您已设置int checking = 1并且您正在检查:

    始终为if (checking != 1)
  1. true
  2. checking == 1也始终为true
  3. 由于此其他else if条件根本不会执行。

    只有在运行时或在编译时使用某些条件尝试更改checking的值时,才会删除警告。

    如果您只想设置speaker.setChecked(),则可以执行以下操作:

    speaker.setChecked(checking == 1)

    注意:这不会删除警告