C语言——循环语句知识科普

循环语句

一、内容提要

1.for循环;

2.while循环;

3.do while循环;

4.break的使用;

5.continue的使用;

二、内容详解

1、for循环;

for(表达式1;表达式2;表达式3)
{
语句块1
}

表达式1:初始化;最早被执行;有且执行一次。
表达式2:判断,为真循环继续,为加循环结束;每次进入循环都需判断;每次都执行。
表达式3:步进,修改循环因子值;执行完语句块1之后执行;每次都执行。
分析如下代码:

int main()
{
    char *strl = "abcde";//字符串常量
    char str2[]="abcde";//字符数组
    str1[0] = 'x';//崩溃,试图修改字符串常量的值
    str2[0] = 'x';
    
    //strcpy,strcat,strcmp,strlen,atoi,itoa
    
    return 0;
}

执行结果如下图:
在这里插入图片描述
在这里插入图片描述

####表达式1,最早执行,只执行一次

####在每一次循环中,先执行表达式2,如果为真则进入循环里,执行语句块1,最后再执行表达式3.

在这里插入图片描述

在这里插入图片描述

####表达式2为假,循环结束
表达式2为假,循环结束

例2:输出三个数字

 int main()
 {
     int i;
     for(i=0;i<3;i++)
     {
         printf("%d\n",i);
     }
     return 0;
 }

for循环中的三个表达式都可以省略(两个分号不能省),例如上面的程序可以(不建议)改成如下代码


int main()
{
    int i = 0;//初始化
    for( ; ; )
    {
        if(i>=3)//判断
        {
            break;
        }
        printf("%d\n",i);
        i++;//修改循环因子
    }
    return 0;
}

for循环是使用的最多的循环语句,其最大的特点就是三个表达式放在一起,不容易漏写。

2、while循环;

while(表达式1)
{
语句块1
}
表达式1为真循环继续,为假循环结束。
上面的例子改成while循环。

int main()
{
    int i = 0;//初始化
    while(i<3)//判断
    {
        printf("%d\n",i);
        i++;//修改循环因子
    }
    return 0;
}

3、do while循环;

do
{
语句块1
}while(表达式1);
表达式1为真循环继续,为假循环结束。
上面的例子改成do while循环。

int main()
{
    int i = 0;//初始化
    do{
        printf("%d\n",i);
        i++;//修改循环因子
    }while(i<3);//判断
    return 0;
}

注意:
while保证语句块至少执行0次及以上;
do while保证语句块至少执行1次以上。
当表达式的第一次的值为“真”时,两种循环完全相同。

4、break的使用;

break用于跳出switch或者跳出一层循环
例如:求满足如下条件的值
1+2+#+…+x<1000 且1+2+#+…+x+(x+1)>1000
输出x和求和的值。

void SumTo1000()
{
    int sum = 0;//保存累加的值
    int i;//i后面要用,定义在for外面
    for(i=1; ;i++)
    {
        sum += i;
        if(sum > 1000)
            break;//符合条件,循环结束
    }
    printf("x=%d,和=%d\n",i-1,sum);
}

5、continue的使用;

continue:提前结束本次(趟)循环,直接进入下一次(趟)循环。
例如:输出100~200之间的不能被3整除的数
可以这样实现

for(n=100;n<=200;n++)
{
    if(n%3!=0)
        printf("%d",n);
}

也可以利用continue关键字这样实现

for(n=100;n<200;n++)
{
    if(n%3==0)
        continue;//提前结束本次循环,后面的输出不执行
    printf("%d",n);
}

猜你喜欢

转载自blog.csdn.net/Mugler_/article/details/106265500