5.4 串接和嵌套

有时需要检查多个相关的条件,并在多种措施中选择一种方式。其中一种方法是将一系列的 ifelse 语句串接(chaining)起来:

  1. if (x > 0) {
  2. System.out.println("x is positive");
  3. } else if (x < 0) {
  4. System.out.println("x is negative");
  5. } else {
  6. System.out.println("x is zero");
  7. }

你可以想串接多长就串接多长,但太长可能难以阅读。为提高可读性,可使用标准的缩进方式,如这里的示例所示。将语句和大括号对齐可降低出现语法错误的可能性。

除了串接,还可以在一个条件语句中嵌套(nesting)另一个条件语句以作出复杂的决策。可将前面的示例重写为下面这样:

  1. if (x == 0) {
  2. System.out.println("x is zero");
  3. } else {
  4. if (x > 0) {
  5. System.out.println("x is positive");
  6. } else {
  7. System.out.println("x is negative");
  8. }
  9. }

外面的条件语句有两个分支,第一个分支包含一条打印语句,第二个分支包含另一个条件语句,该条件语句也有两个分支。这两个分支都是打印语句,但它们本来也可以是条件语句。

这样的嵌套结构很常见,但很难快速地阅读它们。因此我们必须使用正确的缩进,以便这种结构易于理解。