do-while语句
C语言定义了do-while语句,它的定义格式如下:
do
循环语句;
while(表达式);
该语句的执行流程如下:
(1) 步骤一:执行do关键字后面的循环语句;
(2) 步骤二:判断while小括号中的表达式,如果表达式的值为真,则继续执行步骤一;如果表达式的值为假,就不执行循环语句,而且结束while语句的执行。
do-while语句的执行流程图如下:
可以看到,对于do-while语句,先执行一次循环语句,然后,再判断表达式的值。如下是一个程序测试例子:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行的结果如下:
注意:为了代码的整洁、直观,建议使用大括号{}把whlie循环体给包含起来,例如:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
这样就很清晰地看到do关键字后面接一个大括号{}包含的代码块,这个大括号{}中的代码块,就是while循环执行的循环体。
在while循环中使用的break、continue控制语句,在do-while循环也可以使用。
goto语句
C语言提供了goto语句,实现“无条件跳转”功能。定义格式如下:
goto 标号;
其中“标号”是一个标识符,例如变量名这样的一个标识符。标号的定义格式如下:
标号:
就是直接写一个标识符,然后,在末尾使用冒号:结束。其中,标号可以放在goto语句的前面或后面。如下是一个程序测试例子:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
程序运行结果如下:
深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂
可以看到,我们在程序中定义了一个标号label,然后,执行goto label;时,程序就无条件直接跳转到 label标号执行,越过了printf("执行程序 ...\n");语句的执行。
注意:goto语句只能够在函数内进行跳转,不可以跨越函数跳转。很多资料都不提倡使用goto语句,说它使代码结构混乱,随意跳转。
但是,在合适的地方,合理地使用goto语句还是很不错的。例如,在一个函数中,申请了大量的内存和资源,而且进入多层while嵌套循环中执行;那么,运行的时候,出现异常,要求退出函数。
此时,可以结合goto语句使用,直接退出多层while循环,跳转到函数的末尾,释放资源,退出函数。在Linux内核中,就经常使用goto语句,当代码检测到异常,直接goto跳转到异常处理的代码处。
总结
本章节我们学习了C语言编程中的“循环语法”和“goto 语句”。
C语言提供了while、do-while和for循环语句。这些循环语句有自己的特点,可以实现不同的循环逻辑控制。其中,for循环语句,可以执行指定的N次循环,所以,经常使用。读者需要掌握好每一种循环语句的执行特性和执行的流程。
在循环语句中,我们可以使用break、continue语句,控制循环语句的执行。
在文章的末尾,我们介绍了goto语句。很多C语言的学习资料都提到“禁止、慎重使用goto语句”,但是,作者觉得,合理地使用goto语句,是非常必要。在程序的异常处理中,当系统出现异常,可以使用goto语句,跳转到异常处理的代码处。
读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。