while语句
for语句
do while语句
goto语句
while语句
语法结构:
while ( expression ) statement
statement部分可以是以分号结尾的简单语句,也可以是用花括号括起来的复杂语句
如果expression为真(非零),执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直在重复进行。每次循环都被称为一次迭代。
拓展:在C中,真的概念很宽泛,所有的非零值都被视为真,只有0被视为假。C99专门针对真假类型的变量提出了_Bool类型,_Bool类型变量只能只能存储1(真)或假(0),如果把其他非零数值赋给此类型变量,该变量会被设置为1。
在构建while循环时必须让测试值有变化,表达式最终的结果要为假,否则循环就不会终止(实际上还可以用break语句和if语句来终止循环,后面会说到),如下此代码段执行就会不停的打印"Good moring"
index = 1; while (index < 5) printf("Good morning!n");
while循环经常使用关系表达式:
简单的关系表达式由关系运算符及其运算对象组成,如果关系为真,关系表达式的值为1如果关系为假,关系表达式的值为0。
示例:
5 > 2 为真,关系表达式的值为1
( 2 + a )== a 为假,关系表达式的值为0
关系表达式中间的运算符叫关系运算符,每个运算符都把它左侧的值和右侧的值相比较。
==
等于不等于
C语言中引入了break语句和if语句来跳出循环
break:
在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
#includeint main() { int i = 1; while (i <= 10) { if (i == 5) break; printf("%d ", i); i = i + 1; } return 0; }
该代码运行结果:1 2 3 4,当i ==5时,循环结束,5不打印
continue:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
#includeint main() { int i = 1; while (i <= 10) { if (i == 5) continue; printf("%d ", i); i = i + 1; } return 0; }
当i==5时跳过continue后面的语句(while循环中的),所以该程序执行结果为:1 2 3 4
for语句
循环结构一般包含三个部分:初始化,判断部分,调整部分
语法结构: for(表达式1; 表达式2; 表达式3)
statement
注解:表达式1在执行for语句之前只执行一次;然后对表达式2求值,如果表达式为真,执行循环一次;接着对表达式3求值,并再次检查表达式2。for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环。因此,for循环可能一次都不执行。statement部分可以是一条简单语句或复杂语句。
表达式**1**
表达式1为初始化部分,用于初始化循环变量的。
第一个表达式不一定是给变量赋初值,也可以使用printf()。在执行循环的其他部分之前,只对第一个表达式求值一次或执行一次
for (printf("Keep entering numbers!n");num != 6;scanf("%d",&num))
表达式**2**
表达式2为条件判断部分,用于判断循环时候终止。
表达式**3**
表达式3为调整部分,用于循环条件的调整。
建议:for循环不可在循环体内修改循环变量,防止for循环失去控制
建议for语句中的循环控制变量的取值采用“前闭后开区间”写法
可以省略一个或多个表达式但是不能省略分号,只要在循环中包含能结束循环的语句即可(判断部分省略的话,此部分恒为真)
do while语句
语法:
do 循环语句; while (表达式);
注解:在表达式为假或0之前重复执行循环语句,do while循环是出口条件循环,即在每次迭代之后检查测试条件,保证了循环至少执行一次,但是使用场景有限,所以不是经常使用
do scanf("%d", &number); while (number != 20);
do while语句中的break和continue
#includeint main() { int i = 10; do { if(5 == i) break; printf("%dn", i); } while(i<10); return 0; } #include int main() { int i = 10; do { if(5 == i) continue; printf("%dn", i); }while(i<10); return 0; }
goto语句
C语言中提供了可以随意“滥用”的 goto语句和标记跳转的标号。从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码,但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
for(...) for(...) { for(...) { if(disaster) goto error; } } … error: if(disaster) // 处理错误情况
只能在一个函数范围内跳转,不能跨函数,运用于跳出多层嵌套
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)