【C语言】C控制语句—循环

【C语言】C控制语句—循环,第1张

【C语言】C控制语句循环 目录

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是用于永久终止循环的。

#include 
int 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语句的判断部分。进行下一次循环的入口判断。

#include 
int 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

#include 
int 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)
         // 处理错误情况

只能在一个函数范围内跳转,不能跨函数,运用于跳出多层嵌套

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存