if · else if · else

C 语言假定任何非零(non-zero)或非空(non-null)值为 true,如果是零(zero)或空(NULL)则假定为 false 值。

基本语句

  • if
  • if...else
  • if...else if
  • if...else if..else

通过上述基本语句可以相互嵌套组合成更加复杂的语句形式。

if 语句

  • 语法
if (A)  // boolean expression
    B;  // single statement

C;      // expression
if (A) { // boolean expression
    B;   // single or multiple statement(s)
}

C;       // expression
  • 流程图
+---------+     +-----+  false   +-----+     +-------+
| (start) | --> |  A  | -------> |  C  | --> | (end) |
+---------+     +-----+          +-----+     +-------+
                  |                 ^
                  | true            |
                  v                 |
                +-----+             |
                |  B  | ------------+
                +-----+

if...else 语句

  • 语法
if (A)  // boolean expression
    B;  // single statement
else
    C;  // single statement

D;
if (A) { // boolean expression
    B;   // single or multiple statement(s)
} else {
    C;   // single or multiple statement(s)
}

D;
  • 流程图
+---------+     +--------+  true   +-----+     +-----+     +-------+
| (start) | --> |   A    | ------> |  B  | --> |  D  | --> | (end) |
+---------+     +--------+         +-----+     +-----+     +-------+
                  |                               ^
                  | false                         |
                  v                               |
                +--------+                        |
                |   C    | -----------------------+
                +--------+

if...else if 语句

  • 语法

(包含一个或多个 else if 块)

if (A)      // boolean expression
    B;      // single statement
else if (C) // boolean expression
    D;      // single statement

E;          // expression
if (A) {        // boolean expression
    B;          // single or multiple statement(s)
} else if (C) { // boolean expression
    D;          // single or multiple statement(s)
}

E;              // expression
  • 流程图

(混淆点:A == true 时执行完 B 后,是否还要执行 C?当然不需要,不然怎么叫 else if 呢)

+---------+     +-------+  true   +-----+        +-----+        +-------+
| (start) | --> |   A   | ------> |  B  | -----> |  E  | -----> | (end) |
+---------+     +-------+         +-----+        +-----+        +-------+
                  |                                 ^
                  | false                           |
                  v                                 |
                +-------+  true   +-----+           |
                |   C   | ------> |  D  | --------->+
                +-------+         +-----+           |
                  |                                 |
                  | false                           |
                  v                                 |
                  +-------------------------------->+

if...else if...else 语句

  • 语法

(包含一个或多个 else if 块)

if (A)      // boolean expression
    B;      // single statement
else if (C) // boolean expression
    D;      // single statement
else
    E;      // single statement

F;          // expression
if (A) {        // boolean expression
    B;          // single or multiple statement(s)
} else if (C) { // boolean expression
    D;          // single or multiple statement(s)
} else {
    E;          // single or multiple statement(s)
}

F;              // expression
  • 流程图
+---------+     +-------+  true   +-----+        +-----+        +-------+
| (start) | --> |   A   | ------> |  B  | -----> |  F  | -----> | (end) |
+---------+     +-------+         +-----+        +-----+        +-------+
                  |                                 ^
                  | false                           |
                  v                                 |
                +-------+  true   +-----+           |
                |   C   | ------> |  D  | --------->+
                +-------+         +-----+           |
                  |                                 |
                  | false                           |
                  v                                 |
                +-------+                           |
                |   E   | ------------------------->+
                +-------+

results matching ""

    No results matching ""