这是我第一次发帖,因为我无法找到答案。我的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
也是正确的。有人可以帮忙吗?
答案 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)
的true
checking == 1
也始终为true
由于此其他else if
条件根本不会执行。
只有在运行时或在编译时使用某些条件尝试更改checking
的值时,才会删除警告。
如果您只想设置speaker.setChecked()
,则可以执行以下操作:
speaker.setChecked(checking == 1)
注意:这不会删除警告