java - Android Studio if 语句与 OR (||) 函数

标签 java android if-statement

我正在创建一个移动应用程序,用于向用户更新足球比赛的当前得分和最终得分。我希望显示分数的 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/

相关文章:

Java proguard 保留具有 FXML 注释的字段和方法的名称

android - 如何在其他 Android 应用程序上弹出气泡?

C# ??运算符差异

mysql - MySQL中大查询的问题,select if语句

if-statement - 如何使图标子项和文本子项仅在项目等于 1 或更大时出现,如果它们为 0 则使它们不可见

java - Android 启动时应用程序刷新

java - 如何在 Hibernate Criteria API 中仅使用 ID 进行内连接?

java - Collection/菜单

java - 如何更新 firebase 用户 android 的个人资料图片?

android - SharedPreferences 无法将文件重命名为备份文件