首页 > 解决方案 > 有没有办法重构这些 if 语句?

问题描述

只是想知道是否有办法重构下面的代码?我是 Java 新手并尝试使用 DRY 代码 - 我已经编写了以下代码,但似乎有很多条件要检查

void printDirection() {
  if (yDirection > 0) {
    if (xDirection < 0) {
      println("Travelling South-West");
    } else {
      println("Travelling South-East");
    }
  } else if (yDirection < 0) {
    if (xDirection <0) {
      println("Travelling North-West");
    } else {
      println("Travelling North-East");
    }
  }
}

提前感谢您的帮助!

标签: javaif-statementconditional-statementsrefactoring

解决方案


您可以单独评估北/南和东/西条件,并将方向粘贴到您的信息中。

System.out.printf("Travelling %s-%s%n", (yDirection < 0 ? "North" : "South"),
                  (xDirection < 0 ? "West" : "East"));

我从您问题中的代码中假设您只关心这四个互补方向(而不是正北、正东、静止等)。


推荐阅读