流程控制

内容简介

流程控制决定代码执行顺序,主要包括条件判断和循环。没有流程控制,程序只能从上到下一次性执行。

用法

if / else

int score = 85;
 
if (score >= 90) {
    printf("A\n");
} else if (score >= 60) {
    printf("Pass\n");
} else {
    printf("Fail\n");
}

switch

int command = 1;
 
switch (command) {
case 1:
    printf("start\n");
    break;
case 2:
    printf("stop\n");
    break;
default:
    printf("unknown\n");
    break;
}

while

int i = 0;
while (i < 5) {
    printf("%d ", i);
    i++;
}

for

for (int i = 0; i < 5; i++) {
    printf("%d ", i);
}

do while

int i = 0;
do {
    printf("%d ", i);
    i++;
} while (i < 5);

最佳代码实践

  • 分支条件尽量写得明确,例如 score >= 60,不要依赖隐式含义。
  • switch 的每个 case 默认都写 break,除非明确需要贯穿执行。
  • 循环要保证有终止条件,避免死循环。
  • 循环中 continuebreak 可以使用,但不要让控制流变得难读。

错误用法

int i = 0;
while (i < 10) {
    printf("%d\n", i);
    // 错误:忘记 i++,会无限循环
}
switch (command) {
case 1:
    printf("start\n");
case 2:
    printf("stop\n");  // 可能被意外执行
}

注意事项

  • do while 至少执行一次,while 可能一次都不执行。
  • goto 能跳转到同一函数内的标签,但会破坏可读性,初学阶段不建议使用。

学习路径