总结与提高

 
在大学教材,或者考试题目中,通常会提到“三种基本结构”,它们分别是:
  • 顺序结构:代码从前往后依次执行,没有任何“拐弯抹角”,不跳过任何一条语句(所有的语句都会被执行到),也不重复执行任何语句。
  • 选择结构:也叫分支结构。代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。
  • 循环结构:程序会重新执行同一段代码,直到条件不再满足,或者遇到强行跳出语句(break 关键字)。

除了这三种基本结构,C语言其实还有第四种结构,就是跳转结构(通过 goto 语句实现),它允许程序跳转到任意一条代码,然后从此处开始执行。不过,频繁使用跳转结构会使得程序的逻辑变得复杂难懂,调试费劲,所以现在已经不推荐使用跳转结构了。

选择结构

C语言选择结构(分支结构)有三种,分别是 if elseswitch case条件运算符? :(这是C语言中唯一的一个三目运算符)。其中,if else 是最基本的结构,switch case 和? :都是由 if else 演化而来,它们都是为了让程序书写更加方便。

你可以只使用 if,也可以 if else 配对使用。另外要善于使用 switch case 和? :,有时候它们看起来更加清爽。

if else 可以嵌套使用,原则上嵌套的层次(深度)没有限制,但是过多的嵌套层次会让代码结构混乱。

循环结构

C语言中常用的循环结构有 while 循环和 for 循环,它们都可以用来处理同一个问题,一般可以互相代替。

除了 while 和 for,C语言中还有一个 goto 语句,它也能构成循环结构。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,所以不被推荐。但是对出初学者来说,了解 goto 语句的用法和原理还是有必要的。

对于 while 和 do while 循环,循环体中应包括使循环趋于结束的语句。

对于 while 和 do while 循环,循环变量的初始化操作应该在 while 和 do while 语句之前完成,而 for 循环可以在内部实现循环变量的初始化。

for 循环是最常用的循环,它的功能强大,一般都可以代替其他循环。

最后还要注意 break 和 continue 关键字用于循环结构时的区别:
  • break 会完全终止循环,将执行流程转到 while/for 后面的代码;这意味着,整个循环中的任何语句都不再有执行机会。
  • continue 只是结束本次迭代(跳过当前迭代的剩余代码),直接进入下一次迭代;如果循环条件成立,整个循环还会继续执行。

以上这些知识/语法,都可以用来控制程序的执行流程,也就是人为控制代码的执行过程,包括只执行部分代码而忽略其它代码、重复执行某段代码、跳转到任意位置开始执行。