linux while循环怎么写 linux脚本编写教程

return 语句return语句的作用是提供整个函数的返回值,并结束当前函数,返回被调用的地方。也可以在没有返回值的函数中使用return语句。例如,当检测到错误时,会提前结束当前函数

本文最后更新时间:  2023-02-28 02:31:57

return 语句

return语句的作用是提供整个函数的返回值,并结束当前函数,返回被调用的地方。也可以在没有返回值的函数中使用return语句。例如,当检测到错误时,会提前结束当前函数的执行,并返回以下内容:

int check_num(int num) { if ((num < 1) || (num > 12)) { printf("invalid number!\n"); } return num; }

返回值的函数相当于定义了一个与返回值同类型的临时变量,用return后的表达式初始化。

while 语句

与if语句类似,while语句由一个控制表达式和一个子语句组成,子语句可以是由几个语句组成的语句块。

Statement = = >: While(控制表达式)语句

如果控制表达式的值为真,则执行子语句,然后再次测试控制表达式的值。如果为真,则再次执行子语句,并再次测试控制表达式的值。这个控制过程叫做循环,子语句叫做循环体。如果某个测试控制表达式的值为false,则跳出循环,执行下面的return语句。如果第一个测试控制表达式的值为false,则直接传递给return语句,循环体不执行一次。

do/while 语句

do/while语句的语法是:

Statement = = >:语句do while(控制表达式);

while语句在执行循环体之前测试控制表达式的值,而do/while语句在测试控制表达式的值之前执行循环体。如果一开始控制表达式的值为false,while语句的循环体将不会执行一次,而do/while语句的循环体在跳出循环之前仍然必须执行一次。

for 语句

for语句的语法是:

For(控制表达式1;控制表达式2;控制表达式3)语句

int factorial(int n){ int result = 1; int i; for(i = 1; i <= n; ++i) result = result * i; return result;}

表达式++i等价于i = i+1,++和++称为前缀自动递增运算符。–被叫前缀减量运算符,–I相当于i = i & # 82111。

+和—运算符也可以用在变量之后,比如i++和i & # 8211为了与前缀运算符相区别,这两种运算符称为后缀自增运算符和后缀自减运算符。

break 语句和continue语句

break语句的一个用途是跳出switch语句块,这个语句也可以用来跳出循环体。continue语句也将终止当前循环。与break语句不同,continue语句终止当前循环,然后返回到循环体的开头,为下一个循环做准备。对于while循环和do/while循环,在执行continue语句后测试控制表达式;如果值为真,继续执行下一个循环;对于For循环,在执行continue语句后,首先计算控制表达式3,然后测试控制表达式2。如果值为真,继续执行下一个循环。

#include <stdio.h>int main(void){ int i = 0; int j = 0; for (i=1; i<=9; i++) { for (j=1; j<=9; j++) { printf("%d\t", i*j); } printf("\n"); } return 0;}goto 语句

如果在嵌套循环中遇到错误条件,需要立即跳出最外层循环进行错误处理,可以使用goto语句。

for (...) for (...) { ... if (error) goto ERROR; }ERROR: handle error;

错误:这里称为标签。任何语句前面都可以有几个标签,每个标签的命名都要遵循标识符的命名规则。

Goto只能跳转到同一个函数中的某个标签,不能跳转到其他函数。

与标签相关的语法规则如下:

语句= = >:标识符:语句

语句= = >: Case表达式:语句

语句= = >:默认值:语句

c库函数setjmp和longjmp可以一起在函数间跳转,但只能从被调用的函数跳回其直接或间接调用方(同时从stack 空)弹出一个或多个堆栈帧,不能从一个函数跳转到另一个与之无关的函数。Setjmp/longjmp函数主要用于错误处理,比如函数A调用函数B,函数B调用函数C,如果C出现错误情况,使得函数B和C继续执行没有意义,可以利用setjmp/longjmp机制快速返回函数A进行错误处理。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。