嵌入式linux C语言: 4.循环结构
goto
goto 语句,无条件跳转语句
让CPU到指定地方去执行
语法:
goto 行标识;
“行标识”: 标识符,用来表示某一行的符号
行标识一般是写在一行的最前面
允许有空白符(如: 空格、TAB…)
loop:
sum += i;
i += 1;
goto loop; //死循环
一般来说,goto语句和if配合使用,避免造成 死循环
loop:
sum += i;
i += 1;
if(i <= 100)
goto loop;
结构化程序设计中,建议限制使用goto语句,乱用goto会使代码的可读性变差
goto 中不能使用 break
while语句
语法:
while(表达式)
语句
while: 当
执行顺序
当 表达式 的值为!0,则执行 语句 ;执行完语句后,跳转到上面继续判断, 当 表达式 的值为0式结束循环。
表达式: C语言中的合法表达式
语句: 单语句(只有一个分号) 和 复合语{}/if/switch/while/do while/for
#include <stdio.h>
/*求1-100所有数之和*/
int main()
{
int i = 1;
int sum = 0;
while(i<=100)
{
sum += i;
i++;
}
return 0;
}
do while
语法:
do
{
循环体语句
}
while(表达式);
执行顺序:
先执行 循环体语句,再判断 表达式 的值,如果表达式的值为 !0 ,则继续执行循环,直到判断表达式的值为0式结束循环
循环体语句:
单语句
复合语句
do 和 while 必须成对出现,do后面的循环体语句,可以是单语句,也可以是复合语句
for
语法:
for(表达式1; 表达式2; 表达式3)
循环体语句
执行顺序:
先执行表达式1,然后判断表达式2的值为 !0,执行循环体语句,执行表达式3,然后判断表达式2,当表达式2为0结束循环
表达式1、表达式2、表达式3:
任意C语言合法的表达式都可以
表达式1、表达式2、表达式3 任意都可以省略,但是; ;
不能省略
如果 表达式2 省略,执行条件永远为真,死循环
=>for(表达式1; ;表达式3) <=> for(表达式1; 1; 表达式3)
循环语句
单语句
复合语句
#include <stdio.h>
/*求1-100所有数之和*/
int main()
{
int i = 1;
int sum = 0;
for(; i<=100; i++)
{
sum += i;
}
return 0;
}
break 和 continue
break 语句只能用在 switch语句 和 循环体语句(while/do while/for)中
- break用在switch中,用来挑出它所属的那一个switch
- break用在循环体语句中,用来跳出它所属的那一循环
continue 继续
continue 只能用在循环体语句(while/do while/for)中
continue:
结束本次循环,继续下一次循环