自学内容网 自学内容网

分支和循环语句(2)


目录

前言

三、循环语句

 3.1while循环

 3.1.1 break

 3.1.2 continue

3.1.3 总结:

3.2 for循环

3.2.1 for语句的循环控制变量

3.2.2 一些for循环的变种

1、括号里面什么都不写

2、for的嵌套

3、使用多于一个变量控制循环

 3.3 do...while循环

3.3.1 do语句的语法

3.3.2 执行流程

3.3.3 do...while循环例子

3.3.4 do语句的特点

总结


前言

我们今天,接着讲解循环语句,需要多加练习才可以更加的牛


三、循环语句

C语言中有三种循环,分别是:

while

for

do while

 3.1while循环

首先先了解一下while循环的语法结构:

while(表达式)
{
    循环语句;
}

while括号里的表达式为真,就执行里面的语句,为假不执行,跳出循环;下面是一个建议的流程图来描述while循环:

从入口进入while循环语句,判断表达式是否为真,真则就是继续执行循环语句,假直接到出口(也就是循环结束)。

 在屏幕上打印1-10的数字:

int main( )
{
    int n=1;
    whlie(n<=10)
    {
        printf("%d",n);
        n++;
    }
    return 0;
}

因为while和if一样,只会识别一行代码,所以加上括号,也就是循环括号里的内容,上述就是如果条件成立,就打印n这个数,n从1开始,之后n+1,也就是2,接着在判断表达式是否为真,直到n为11的时候,判断不为真,所以循环结束,最后的结果就是n从1-10都打印了出来。

 3.1.1 break

break在while循环中的作用:

其实在循环中只要遇到break,就停止后期的所有循环,直接终止循环,所以,while中的break是用于永久终止循环的。

例如:

int main( )
{
    int n=1;
    while(n<=10)
    {
        if(5 == n)
        {
            break;
        }
        printf("%d",n);
        n++;
    }
    return 0;
}

这里就是跟上面的代码一样,输出1-10,但是它循环语句里面有一个限制条件,就是当n==5的时候,循环执行break,由于我们知道了break是停止之后所有的循环(永久终止循环)的 ,所以结果也就可想而知的了屏幕上面只打印1234,当n等于5的时候,break终止循环,连printf打印都没执行上,所以就只打印前四个数就结束了。

case里面也有用到break,跳出case的语句。

 3.1.2 continue

continue在while循环中的作用:

continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,而是直接跳转到while语句的判断部分,进行下一次循环入口的判断。

可以先来分析一下下面的代码: 

int main( )
{
    int n=1;
    while(n<=10)
    {
        if(5 == n)
        {
           continue;
        }
        printf("%d",n);
        n++;
    }
    return 0;
}

可以运行一下就会发现光标在4之后就不会打印了,但程序不会结束,而是一直运行(也就是死循环了)。

当n从1进入循环后,打印到4的时候,n+1也就是5,因为有限制条件,当n=5的时候,执行continue,而我们知道continue的作用是终止本次循环,直接跳转到判断句(循环表达式)进行下一次判断和循环,这时n还是等于5,所以往下运行后还是会执行continue,也就是死循环了,程序永远执行不到尽头。

当我们想要修改上面的代码,让他不输出5,其它的9个数都输出,可以这么写:

int main( )
{
    int n=1;
    while(n<10)
    {
        n++;
        if(5 == n)
        {
           continue;
        }
        printf("%d",n);
    }
    return 0;
}

这就可以输出1234678910。

3.1.3 总结:

continue在循环中是跳过本次循环执行下一次循环,或者说就是跳过某一次代码中后面的代码。而break则是终止循环中所有的代码,及时下一次循环没有执行,也直接跳出循环(终止循环)。

3.2 for循环

因为while循环比较分散,所以出现了for循环。

for循环的表达结构:

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

这里表达式1是初始化,也就是对应第一个数的初始化值,表达式2是判断,就是while循环括号里 的内容,表达式3是调整,类似i++等等的,括号里则是循环语句,进行执行。

for循环的流程图如下:

 

用for循环打印1-10: 

int main( )
{
    int i = 0;
    for(i =1; i<=10; i++)
    {
        printf("%d",i);
    }
    return 0;
} 

 这里首先定义i这个变量,进入for循环,i从1开始进行循环,i先和10进行判断,如果成立,就执行循环语句,然后i++,直到不成立的时候循环结束。跳出循环并返回,程序结束。

C语言中for循环用的最多,其次是while循环,再其次才是do...while循环。

在for循环中break的含义也是一样的,是终止循环,但是continue还是有一些区别的,while语句中遇到continue会直接跳到判断部分,而for中会跳到调整部分(表达式3)。

3.2.1 for语句的循环控制变量

1、不可以在for循环体内修改循环变量,防止for循环失去控制。

2、建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

我们在调整的时候是在括号里面表达式3来写的,要不然非常容易发生错误。

int main( )
{
    int arr[10] = {1,2,3,4,5,6,7,8,9,10};
    for i =0;
    for(i = 0;i < 10; i++)
    {
        printf("%d",arr[i]);
    }
    return 0;
}

上述代码就是打印arr数组里面的数,这一种是一种比较好的写法,但是当我们吧 i < 10 改成 i <= 9,理论上也可以输出,但不好,左闭右开写法,后面要写10会有一些意义,可读性比较好,建议采用这种写法。但最终还是看场景,哪一种适合就写哪一种。

3.2.2 一些for循环的变种

1、括号里面什么都不写
int main( )
{
    for(; ;)
    {
        printf("ok\n");
    }
    return 0;
}

for循环的初始化,判断和调整三个部分就可以省略,但是省略判断部分,判断就恒为真,循环就为死循环。上述代码也就一直输出ok,进入死循环。 

2、for的嵌套
int main( )
{
    int i =0;
    int j =0;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("ok\n");
        }
    }
    return 0;
}

这段代码,外层循环三次,内层在外层的基础上循环三次,所以此代码就总共循环9次,也就输出九个ok。

int main( )
{
    int i =0;
    int j =0;
    for(;i<3;i++)
    {
        for(;j<3;j++)
        {
            printf("ok\n");
        }
    }
    return 0;
}

当我们把两个for循环的初始化省略之后运行结果就会发现只会打印三个ok,运行开始的时候,i从0开始,j开始循环,j循环到3的时候j的循环跳出,i+1变成2,又进入j的循环,但j由于没有初始化,所以往后的运行j都是3,又因为j的限制判断条件,所以就只能循环第一次的三个ok,剩下的并没有运行。

3、使用多于一个变量控制循环
int main( )
{
    int x,y;
    for(x =0,y =0; x<2 && y<5; ++x,y++)
    {
        printf("ok\n");
    }
    return 0;
}

循环变量可以用多个来控制,只要场景合适就可以,结果是打印两个ok,通过条件就可以看出来。

 3.3 do...while循环

3.3.1 do语句的语法

do 
    循环语句;
while(表达式);

3.3.2 执行流程

 

 这与之间的差不多,判断条件为真就停止循环,为假就返回判断条件继续进行循环,直到循环满足条件循环结束。

3.3.3 do...while循环例子

在屏幕上打印1-10:

int main( )
{
    int i =1;
    do
    {
        printf("%d",i);
        i++;
    }while(i<=10);
    return 0;
}

 例如上面的代码,先定义一个i为1的变量,然后执行do里面的内容,先打印i,之后在i+1,do执行后再进行判断,如果符合判断式的内容,就继续执行do里面的代码,如果不符合,就结束循环,执行循环外的代码,返回0,结束程序。

do也是只会执行一条语句,想要执行多个语句就需要加上一个大括号。

3.3.4 do语句的特点

循环至少循环一次,也就是执行do里面的语句,使用的场景有限,所以不是经常使用。这里面的break和continue用法和之前的循环里的一样,挨句读就可以。


总结

以上就是今天要讲的内容,本文讲解了循环语句的有关使用。


原文地址:https://blog.csdn.net/heart_z/article/details/142696028

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!