我正在创建一个移动应用程序,用于向用户更新足球比赛的当前得分和最终得分。我希望显示分数的 TextView 仅显示当前或最终分数。 我在使用 if 语句时遇到问题。我需要其中一个字段包含一些内容才能创建记录,所以我有:
if (!(et_currentgoals.getText().toString().isEmpty()) || !(et_finalgoals.getText().toString().isEmpty()){
}
在这个 if 语句中,我是另一个用正确的值更新 TextView 的语句。因此,如果输入了最终进球数,则当前进球数将被丢弃。最好的方法是这样的:
if(!(et_finalgoals.getText().toString.isEmpty()){
tv_goals.setText(et_finalgoals.getText().toString();
}else{
tv_goals.setText(et_currentgoals.getText().toString();
}
这是否涵盖了这两种情况,还是我遗漏了什么?
最佳答案
在第一个 if
block 中添加第二个 if
block 也可以,但还有一种更简单的方法。
这个if
就可以了。
if (!et_finalgoals.getText().toString.isEmpty()) {
tv_goals.setText(et_finalgoals.getText().toString();
} else if (!et_currentgoals.getText().toString.isEmpty()) {
tv_goals.setText(et_currentgoals.getText().toString();
}
也就是说,这两个 block 是等价的
if (a || b) {
if (a) {
// a
} else {
// b
}
}
if (a) {
// a
} else if (b) {
// b
}
如果我理解正确的话,在设置 tv_goals
文本之后,您将在第一个 if 语句内执行其他代码。现在要执行此操作,您只需检查 tv_goals
的文本即可。
if (!tv_goals.getText().toString.isEmpty()) {
// Do additional code
}
如果是这种情况,最终的代码量将与原始解决方案的代码量相同。您应该选择您认为更清楚的方式。
关于java - Android Studio if 语句与 OR (||) 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43280968/