对C语言选择结构和循环结构的总结
C语言中常用的编程结构有三种(其它编程语言也是如此),它们分别是:
你可以只使用 if,也可以 if...else 配对使用。另外要善于使用 switch...case 和
if...else 可以嵌套使用,原则上嵌套的层次(深度)没有限制,但是过多的嵌套层次会让代码结构混乱。
除了 while 和 for,C语言中还有一个 goto 语句,它也能构成循环结构。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,不被推荐,而且 goto 循环完全可以被其他循环取代,所以后来的很多编程语言都取消了 goto 语句,我们也不再讲解。
对于 while 和 do-while 循环,循环变量的初始化操作应该在 while 和 do-while 语句之前完成,而 for 循环可以在内部实现循环变量的初始化。
for 循环是最常用的循环,它的功能强大,一般都可以代替其他循环。
最后还要注意 break 和 continue 关键字用于循环结构时的区别:
此外,break 关键字还可以用于跳出 switch...case 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。
- 顺序结构:代码从前往后依次执行,没有任何“拐弯抹角”,不跳过任何一条语句,所有的语句都会被执行到。
- 选择结构:也叫分支结构。代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。
- 循环结构:程序会重新执行同一段代码,直到条件不再满足,或者遇到强行跳出语句(break 关键字)。
选择结构
选择结构(分支结构)涉及到的关键字包括 if、else、switch、case、break,还有一个条件运算符? :
(这是C语言中唯一的一个三目运算符)。其中,if...else 是最基本的结构,switch...case 和? :
都是由 if...else 演化而来,它们都是为了让程序员书写更加方便。你可以只使用 if,也可以 if...else 配对使用。另外要善于使用 switch...case 和
? :
,有时候它们看起来更加清爽。if...else 可以嵌套使用,原则上嵌套的层次(深度)没有限制,但是过多的嵌套层次会让代码结构混乱。
循环结构
C语言中常用的循环结构有 while 循环和 for 循环,它们都可以用来处理同一个问题,一般可以互相代替。除了 while 和 for,C语言中还有一个 goto 语句,它也能构成循环结构。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,不被推荐,而且 goto 循环完全可以被其他循环取代,所以后来的很多编程语言都取消了 goto 语句,我们也不再讲解。
国内很多大学仍然讲解 goto 语句,但也仅仅是完成教材所设定的课程,goto 语句在实际开发中很难见到。对于 while 和 do-while 循环,循环体中应包括使循环趋于结束的语句。
对于 while 和 do-while 循环,循环变量的初始化操作应该在 while 和 do-while 语句之前完成,而 for 循环可以在内部实现循环变量的初始化。
for 循环是最常用的循环,它的功能强大,一般都可以代替其他循环。
最后还要注意 break 和 continue 关键字用于循环结构时的区别:
- break 用来跳出所有循环,循环语句不再有执行的机会;
- continue 用来结束本次循环,直接跳到下一次循环,如果循环条件成立,还会继续循环。
此外,break 关键字还可以用于跳出 switch...case 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算